Wednesday, March 11, 2020
Ssks Essay Example
Ssks Essay Example Ssks Essay Ssks Essay Java Collection Interview Questions Q:| What is the Collections API? | A:| The Collections API is a set of classes and interfaces that support operations on collections of objects. | Q:| What is the List interface? | A:| The List interface provides support for ordered collections of objects. | Q:| What is the Vector class? | A:| The Vector class provides the capability to implement a growable array of objects. | Q:| What is an Iterator interface? | A:| The Iterator interface is used to step through the elements of a Collectionà . | Q:| Which java. util classes and interfaces support event handling? A:| The EventObject class and the EventListener interface support event processing. | Q:| What is the GregorianCalendar class? | A:| The GregorianCalendar provides support for traditional Western calendars| Q:| What is the Locale class? | A:| The Locale class is used to tailor program output to the conventions of a particular geographic, political, or cultural region . | à | | | Q:| Wh at is the SimpleTimeZone class? | A:| The SimpleTimeZone class provides support for a Gregorian calendar . | à | | | Q:| What is the Map interface? | A:| The Map interface replaces the JDK 1. 1 Dictionary class and is used associate keys with values. à | | | Q:| What is the highest-level event class of the event-delegation model? | A:| The java. util. EventObject class is the highest-level class in the event-delegation class hierarchy. | à | | | Q:| What is the Collection interface? | A:| The Collection interface provides support for the implementation of a mathematical bag an unordered collection of objects that may contain duplicates. | à | | | Q:| What is the Set interface? | A:| The Set interface provides methods for accessing the elements of a finite mathematical set. Sets do not allow duplicate elements. | à | | | Q:| What is the typical use of Hashtable? | A:| Whenever a program wants to store a key value pair, one can use Hashtable. | à | | | Q:| I am trying to store an object using a key in a Hashtable. And some other object already exists in that location, then what will happen? The existing object will be overwritten? Or the new object will be stored elsewhere? | A:| The existing object will be overwritten and thus it will be lost. | à | | | Q:| What is the difference between the size and capacity of a Vector? | A:| The size is the number of elements actually stored in the vector, while capacity is the maximum number of elements it can store at a given instance of time. à | | | Q:| Can a vector contain heterogenous objects? | A:| Yes a Vector can contain heterogenous objects. Because a Vector stores everything in terms of Object. | à | | | Q:| Can a ArrayList contain heterogenous objects? | A:| Yes a ArrayList can contain heterogenous objects. Because a ArrayList stores everything in terms of Object. | à | | | Q:| What is an enumeration? | A:| An enumeration is an interface containing methods for accessing the underlying data structure from which the enumeration is obtained. It is a construct which collection classes return when you request a collection of all the objects stored in the collection. It allows sequential access to all the elements stored in the collection. | à | | | Q:| Considering the basic properties of Vector and ArrayList, where will you use Vector and where will you use ArrayList? | A:| The basic difference between a Vector and an ArrayList is that, vector is synchronized while ArrayList is not. Thus whenever there is a possibility of multiple threads accessing the same instance, one should use Vector. While if not multiple threads are going to access the same instance then use ArrayList. Non synchronized data structure will give better performance than the synchronized one. | à | | | Q:| Can a vector contain heterogenous objects? | A:| Yes a Vector can contain heterogenous objects. Because a Vector stores everything in terms of Object. | à | Java Collections Interview QuestionsWhat is HashMap and Map? Map is Interface and Hashmap is class that implements this interface. What is the significance of ListIterator? OrWhat is the difference b/w Iterator and ListIterator? Iterator :à Enables you to cycle through a collection in the forward direction only, for obtaining or removing elementsListIterator :à It extends Iterator, allow bidirectional traversal of list and the modification of elementsDifference between HashMap and HashTable? Can we make hashmap synchronized? 1. The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls. (HashMapà allows null values as key and value whereas Hashtable doesnââ¬â¢t allow nulls). 2. HashMap does not guarantee that the order of the map will remain constant over time. 3. HashMap is non synchronized whereas Hashtable is synchronized. . Iterator in the HashMap is fail-safe while the enumerator for the Hashtable isnt. Note on Some Important Terms 1)Synchronized means only one thread can modify a hash table at one point of time. Basically, it means that any thread before performing an update on a hashtable will have to acquire a lock on the object while others will wait for lock to be released. 2)Fail-safe is relevant from the context of iterators. If an iterator has been created on a collection object and some other thread tries to modify the collection object structurallyâ⬠, a concurrent modification exception will be thrown. It is possible for other threads though to invoke set method since it doesnââ¬â¢t modify the collection structurallyâ⬠. However, if prior to calling set, the collection has been modified structurally, IllegalArgumentException will be thrown. HashMap can be synchronized byMap m = Collections. synchronizeMap(hashMap);What is the difference between set and list? A Set stores elements in an unordered way and does not contain duplicate elements, whereas a list stores elements in an ordered way but may contain duplicate elements. Difference between Vector and ArrayList? What is the Vector class? Vector is synchronized whereas ArrayList is not. The Vector class provides the capability to implement a growable array of objects. ArrayList and Vector class both implement the List interface. Both classes are implemented using dynamically resizable arrays, providing fast random access and fast traversal. In vector the data is retrieved using the elementAt() method while in ArrayList, it is done using the get() method. ArrayList has no default size while vector has a default size of 10. when you want programs to run in multithreading environment then use concept of vector because it is synchronized. But ArrayList is not synchronized so, avoid use of it in a multithreading environment. What is an Iterator interface? Is Iterator a Class or Interface? What is its use? The Iterator is an interface, used to traverse through the elements of a Collection. It is not advisable to modify the collection itself while traversing an Iterator. What is the Collections API? The Collections API is a set of classes and interfaces that support operations on collections of objects. Example of classes: HashSet, HashMap, ArrayList, LinkedList, TreeSet and TreeMap. Example of interfaces: Collection, Set, List and Map. What is the List interface? The List interface provides support for ordered collections of objects. How can we access elements of a collection? We can access the elements of a collection using the following ways: 1. Every collection object has get(index) method to get the element of the object. This method will return Object. 2. Collection provide Enumeration or Iterator object so that we can get the objects of a collection one by one. What is the Set interface? The Set interface provides methods for accessing the elements of a finite mathematical set. Sets do not allow duplicate elements. Whatââ¬â¢s the difference between a queue and a stack? Stack is a data structure that is based on last-in-first-out rule (LIFO), while queues are based on First-in-first-out (FIFO) rule. What is the Map interface? The Map interface is used associate keys with values. What is the Properties class? The properties class is a subclass of Hashtable that can be read from or written to a stream. It also provides the capability to specify a set of default values to be used. Which implementation of the List interface provides for the fastest insertion of a new element into the middle of the list? a. Vectorà b. ArrayList . LinkedList d. None of the aboveArrayList and Vector both use an array to store the elements of the list. When an element is inserted into the middle of the list the elements that follow the insertion point must be shifted to make room for the new element. The LinkedList is implemented using a doubly linked list; an insertion requires only the updating of the links at t he point of insertion. Therefore, the LinkedList allows for fast insertions and deletions. How can we use hashset in collection interface? This class implements the set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the Null element. This class offers constant time performance for the basic operations (add, remove, contains and size), assuming the hash function disperses the elements properly among the buckets. What are differences between Enumeration, ArrayList, Hashtable and Collections and Collection? Enumeration: It is series of elements. It can be use to enumerate through the elements of a vector, keys or values of a hashtable. You can not remove elements from Enumeration. ArrayList:à It is re-sizable array implementation. Belongs to List group in collection. It permits all elements, including null. It is not thread -safe. Hashtable:à It maps key to value. You can use non-null value for key or value. It is part of group Map in collection. Collections:à It implements Polymorphic algorithms which operate on collections. Collection:à It is the root interface in the collection hierarchy. What is difference between array ; arraylist? An ArrayList is resizable, where as, an array is not. ArrayList is a part of the Collection Framework. We can store any type of objects, and we can deal with only objects. It is growable. Array is collection of similar data items. We can have array of primitives or objects. It is of fixed size. We can have multi dimensional arrays. Array:à can store primitiveà à à à à à à à à à à à ArrayList:à Stores object onlyArray:à fix sizeà à à à à à à à à à à à à à à à à à à à à à à à à à à à ArrayList:à resizableArray:à can have multi dimensionalArray:à lang à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à à ArrayList:à Collection frameworkCan you limit the initial capacity of vector in java? Yes you can limit the initial capacity. We can construct an empty vector with specified initial capacitypublic vector(int initialcapacity)What method should the key class of Hashmap override? The methods to override are equals() and hashCode(). What is the difference between Enumeration and Iterator? The functionality of Enumeration interface is duplicated by the Iterator interface. Iterator has a remove() method while Enumeration doesnt. Enumeration acts as Read-only interface, because it has the methods only to traverse and fetch the objects, where as using Iterator we can manipulate the objects also like adding and removing the objects. So Enumeration is used when ever we want to make Collection objects as Read-only. Collections Interview Questions| Q1) What is difference between ArrayList and vector? Ans: )1) Synchronization ArrayList is not thread-safe whereas Vector is thread-safe. In Vector class each method like add(), get(int i) is surrounded with a synchronized block and thus making Vector class thread-safe. 2) Data growth Internally, both the ArrayList and Vector hold onto their contents using an Array. When an element is inserted into an ArrayList or a Vector, the object will need to expand its internal array if it runs out of room. A Vector defaults to doubling the size of its array, while the ArrayList increases its array size by 50 percent. | Q2) How can Arraylist be synchronized without using Vector? Ans) Arraylist can be synchronized using:Collection. synchronizedList(List list)Other collections can be synchronized:Collection. synchronizedMap(Map map)Collection. synchronizedCollection(Collection c)| Q3) If an Employee class is present and its objects are added in an arrayList. Now I want the list to be sorted on the basis of the employeeID of Employee class. What are the steps? Ans) 1) Implement Comparable interface for the Employee class and override the compareTo(Object obj) method in which compare the employeeID2) Now call Collections. sort() method and pass list as an argument. Now consider that Employee class is a jar file. 1) Since Comparable interface cannot be implemented, create Comparator and override the compare(Object obj, Object obj1) method . 2) Call Collections. sort() on the list and pass comparator as an argument. | Q4)What is difference between HashMap and HashTable? Ans) Both collections implements Map. Both collections store value as key-value pairs. The key differences between the two are1. Hashmap is not synchronized in nature but hshtable is. 2. Another difference is that iterator in the HashMap is fail-safe while the enumerator for the Hashtable isnt. Fail-safeà aâ⠬? if the Hashtable is structurally modified at any time after the iterator is created, in any way except through the iterators own remove method, the iterator will throw a ConcurrentModificationExceptionaâ⠬? 3. HashMap permits null values and only one null key, while Hashtable doesnt allow key or value as null. | Q5) What are the classes implementing List interface? Ans) There are three classes that implement List interface: 1)à ArrayListà : It is a resizable array implementation. The size of the ArrayList can be increased dynamically also operations like add,remove and get can be formed once the object is created. It also ensures that the data is retrieved in the manner it was stored. The ArrayList is not thread-safe. 2)à Vector: It is thread-safe implementation of ArrayList. The methods are wrapped around a synchronized block. 3)à LinkedList: the LinkedList also implements Queue interface and provide FIFO(First In First Out) operation for add operation. It is faster if than ArrayList if it performs insertion and deletion of elements from the middle of a list. | Q6) Which all classes implement Set interface? Ans) A Set is a collection that contains no duplicate elements. More formally, sets contain no pair of elements e1 and e2 such that e1. equals(e2), and at most one null element. HashSet,SortedSet and TreeSetà are the commnly used class which implements Set interface. SortedSetà It is an interface which extends Set. A the name suggest , the interface allows the data to be iterated in the ascending order or sorted on the basis of Comparator or Comparable interface. All elements inserted into the interface must implement Comparable or Comparator interface. TreeSetà It is the implementation of SortedSet interface. This implementation provides guaranteed log(n) time cost for the basic operations (add, remove and contains). The class is not synchronized. HashSet:à This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarantees as to the iteration order of the set; in particular, it does not guarantee that the order will remain constant over time. This class permits the null element. This class offers constant time performance for the basic operations (add, remove, contains and size), assuming the hash function disperses the elements properly among the buckets| Q7) What isà differenceà between List and a Set? Ans) 1) List can contain duplicate values but Set doesnt allow. Set allows only to unique elements. 2) List allows retrieval of data to be in same order in the way it is inserted but Set doesnt ensures the sequence in which data can be retrieved. (Except HashSet)| Q8) What is difference between Arrays and ArrayList ? Ans) Arrays are created of fix size whereas ArrayList is of not fix size. It means that once array is declared as : 1. int [] intArray= new int[6]; 2. intArray[7]à à // will give ArraysOutOfBoundException. Also the size of array cannot be incremented or decremented. But with arrayList the size is variable. 2. Once the array is created elements cannot be added or deleted from it. But with ArrayList the elements can be added and deleted at runtime. List list = new ArrayList(); list. add(1); list. add(3); list. remove(0) // will remove the element from the 1st location. 3. ArrayList is one dimensional but array can be multidimensional. nt[][][] intArray= new int[3][2][1];à à // 3 dimensional arrayà à à à 4. To create an array the size should be known or initalized to some value. If not initialized carefully there could me memory wastage. But arrayList is all about dynamic creation and there is no wastage of memory. | Q9) When to use ArrayList or LinkedList ? Ans) à Adding new elements is pretty fast for either type of list. For the ArrayL ist, doing à random lookup using get is fast, but for LinkedList, its slow. Its slow because theres no efficient way to index into the middle of a linked list. When removing elements, using ArrayList is slow. This is because all remaining elements in the underlying array of Object instances must be shifted down for each remove operation. But here LinkedList is fast, because deletion can be done simply by changing a couple of links. So an ArrayList works best for cases where youre doing random access on the list, and a LinkedList works better if youre doing a lot of editing in the middle of the list. | Q10) Consider a scenario. If an ArrayList has to be iterate to read data only, what are the possible ways and which is the fastest? Ans) It can be done in two ways, using for loop or using iterator of ArrayList. The first option is faster than using iterator. Because value stored in arraylist is indexed access. So while accessing the value is accessed directly as per the index. | Q11) Now another question with respect to above question is if accessing through iterator is slow then why do we need it and when to use it. Ans) For loop does not allow the updation in the array(add or remove operation) inside the loop whereas Iterator does. Also Iterator can be used where there is no clue what type of collections will be used because all collections have iterator. | Q12) Which design pattern Iterator follows? Ans) It follows Iterator design pattern. Iterator Pattern is a type of behavioral pattern. The Iterator pattern is one, which allows you to navigate through a collection of data using a common interface without knowing about the underlying implementation. Iterator should be implemented as an interface. This allows the user to implement it anyway its easier for him/her to return data. The benefits of Iterator are about their strength to provide a common interface for iterating through collections without bothering about underlying implementation. Example of Iteration design pattern Enumeration The class java. util. Enumeration is an example of the Iterator pattern. It represents and abstract means of iterating over a collection of elements in some sequential order without the client having to know the representation of the collection being iterated over. It can be used to provide a uniform interface for traversing collections of all kinds. | Q12) Is it better to have a HashMap with large number of records or n number of small hashMaps? Ans) It depends on the different scenario one is working on: 1) If the objects in the hashMap are same then there is no point in having different hashmap as the traverse time in a hashmap is invariant to the size of the Map. ) If the objects are of different type like one of Person class , other of Animal class etc then also one can have single hashmap but different hashmap would score over it as it would have better readability. | Q13) Why is it preferred to declare: ListString list = new ArrayListString(); instead of ArrayListString = new ArrayListString();Ans) It is preferred because: 1. If later on code needs to be changed from ArrayList to Vector then only at the declaration place we can do that. 2. The most important one ââ¬â If a function is declared such that it takes list. E. g void showDetails(List list); When the parameter is declared as List to the function it can be called by passing any subclass of List like ArrayList,Vector,LinkedList making the function more flexible| Q14) What is difference between iterator access and index access? Ans) Index based access allow access of the element directly on the basis of index. The cursor of the datastructure can directly goto the n location and get the element. It doesnot traverse through n-1 elements. In Iterator based access, the cursor has to traverse through each element to get the desired element. So to reach the nth element it need to traverse through n-1 elements. Insertion,updation or deletion will be faster for iterator based access if the operations are performed on elements present in between the datastructure. Insertion,updation or deletion will be faster for index based access if the operations are performed on elements present at last of the datastructure. Traversal or search in index based datastructure is faster. ArrayList is index access and LinkedList is iterator access. | Q15) How to sort list in reverse order? Ans) To sort the elements of the List in the reverse natural order of the strings, get a reverse Comparator from the Collections class with reverseOrder(). Then, pass the reverse Comparator to the sort() method. List list = new ArrayList();Comparator comp = Collections. reverseOrder();Collections. sort(list, comp)| Q16) Can a null element added to a Treeset or HashSet? Ans) A null element can be added only if the set contains one element because when a second element is added then as per set defination a check is made to check duplicate value and comparison with null element will throw NullPointerException. HashSet is based on hashMap and can contain null element. | Q17) How to sort list of strings case insensitive? Ans) using Collections. sort(list, String. CASE_INSENSITIVE_ORDER);| Q18) How to make a List (ArrayList,Vector,LinkedList) read only? Ans) A list implemenation can be made read only usingà Collections. unmodifiableList(list). This method returns a new list. If a user tries to perform add operation on the new list; UnSupportedOperationException is thrown. | Q19) What is ConcurrentHashMap? Ans) A concurrentHashMap is thread-safe implementation of Map interface. In this class put and remove method are synchronized but not get method. This class is different from Hashtable in terms of locking; it means that hashtable use object level lock but this class uses bucket level lock thus having better performance. | Q20) Which is faster to iterate LinkedHashSet or LinkedList? Ans) LinkedList. | Q21) Which data structure HashSet implementsAns) HashSet implements hashmap internally to store the data. The data passed to hashset is stored as key in hashmap with null as value. Q22) Arrange in the order of speed HashMap,HashTable, Collections. synchronizedMap,concurrentHashmapAns) HashMap is fastest, ConcurrentHashMap,Collections. synchronizedMap,HashTable. | Q23) What is identityHashMap? Ans) The IdentityHashMap uses == for equality checking instead of equals(). This can be used for both performance reasons, if you know that two different elements will never be equals and for preventing spoofing, where an object tries to imitate another. | Q24) What is WeakHashMap? Ans) A hashtable-based Map implementation with weak keys. An entry in a WeakHashMap will automatically be removed when its key is no longer in ordinary use. More precisely, the presence of a mapping for a given key will not prevent the key from being discarded by the garbage collector, that is, made finalizable, finalized, and then reclaimed. When a key has been discarded its entry is effectively removed from the map, so this class behaves somewhat differently than other Map implementations. QUESTIONS:1. You need to insert huge amount of objects and randomly delete them one by one. Which Collection data structure is best pet? Obviously, LinkedList. 2. What goes wrong if the HashMap key has same hashCode value? It leads to ââ¬ËCollisionââ¬â¢ wherein all the values are stored in same bucket. Hence, the searching time increases quad radically. 3. If hashCode() method is overridden but equals() is not, for the class ââ¬ËAââ¬â¢, then what may go wrong if you use this class as a key in HashMap? Left to Readers. 4. How will you remove duplicate element from a List? Add the List elements to Set. Duplicates will be removed. 5. How will you synchronize a Collection class dynamically? Use the utility methodà . | à | | | à | |
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.