If you’ve dealt with Java in your undergraduate degree or worked with Java, you must be well aware of the Java Collection framework. As for beginners who’ve just commenced their Java journey, the Collection framework is a unified architecture designed to store and manipulate a group (collection) of objects.
Essentially, a “collection” represents a single group of objects. A Java Collection includes interfaces, classes (ArrayList, Vector, Stack, and Hashtable, etc.), and algorithms with a ready-to-use architecture for storing and handling data.
In this article, we’ll take a look at the most frequently asked Java Collections interview questions. We’ve created a list of the fundamental questions that interviews commonly ask while interviewing candidates for Java profiles. This should help you understand what kind of questions to look forward to in your next interview.
Java Collections Interview Questions & Answers
1. What is the advantage of using the Collections framework?
Java Collections includes both Generics and Concurrent collection classes for thread-safe operations. Also, it comes equipped with blocking interfaces along with their implementations in Java concurrent packages. Here are a few benefits of the Java Collections framework:
It facilitates code reusability and interoperability.
The usage of core collection classes substantially reduces the development effort and time.
The collection classes shipped with JDK reduces the efforts required for code maintenance.
2. Distinguish between Array and Collection.
Although array and collection are used for storing objects and manipulating data, they have a few innate differences:
- You cannot increase or decrease the length of an array according to your runtime requirements – arrays are fixed in size. However, you can alter a collection’s size according to your scaling needs.
- An array can only store homogeneous (similar or same) objects, whereas a collection can store a heterogeneous group of objects.
- While arrays do not offer ready-to-use methods (searching, sorting, insertion, etc.) for user requirements, collections always include ready-to-use methods.
3. What is the role of Generics in the Collections framework?
Generics lets you specify or define the type of objects that a collection can store. If you try to add an element of a different type, Generics will display a compile-time error. Thus, by showing an error during the compilation, it helps prevent ClassCastException at runtime. Moreover, since Generics eliminates the need to use casting and instanceof function, it makes the code clean and precise.
4. Name the interfaces of the Collections framework.
Here are the five core interfaces in the Collections framework:
Collection interface – It is the foundation of the Java Collection hierarchy. Most collections in Java are inherited from the Collections interface.
List interface – It is an extended array containing ordered elements, along with their duplicates. This interface supports the index-based search. So, you can access any element from its index. It is implemented by using different classes like ArrayList, LinkedList, etc.
Set interface – It is a collection class that cannot contain duplicate elements. Unlike List, it does not support index-based search and does not define any order for the elements. Set models the mathematical set abstraction and is implemented by classes like HashSet, TreeSet, LinkedHashSet, etc.
Map interface – It is a two-dimensional data structure that stores data in key-value pairs. While the key is a unique hashcode, the value denotes the element. A map cannot have duplicate keys/elements.
Queue interface – This interface arranges the element in the First In First Out (FIFO) approach. Thus, elements in the queue interface are removed from the front and added from the rear end.
Also Read: How to Code, Compile and Run Java Projects
5. When should you override the equals() method in Java?
While the initial implementation of the equals() method checks if two objects are similar, it is necessary to override the equals() method if you wish to compare the objects based on their properties.
6. Is it beneficial to use the Properties file?
Yes, using the Properties file in Java extends a major advantage – if you change the values in this file, it will be automatically reflected, without requiring to recompile the Java class. As a result, the Properties file is mainly used for storing information that is liable to change (for example, username and passwords. It allows for easy management of a Java application.
7. What is the function of the Iterator in the Collection framework?
The Iterator is an interface that comes in java.util package. Also known as the Universal Java Cursor, the Iterator helps iterate a collection of objects. The Iterator lets you pass a collection of objects one by one and supports READ and REMOVE operations. It is widely used since Iterator method names can be easily implemented.
8. How can you sort the Collection objects?
In the Collections framework, sorting is usually implemented by using the Comparable and Comparator interfaces. If you use the Collections.sort() method, it will sort the elements based on the natural order specified in the compareTo() method. However, when you use the Collections.sort(Comparator) method, it will sort the elements according to the compare() method of the Comparator interface.
Read: Java Swing Project
9. Is it possible to convert an ArrayList to Array and an Array to ArrayList?
Yes, it is possible to do so. You can convert an Array into an ArrayList by using the Array class’s asList() function. The syntax for this is as follows:
You can convert an ArrayList into an Array using the toArray() function of the ArrayList class, like so:
10. How to reverse a List?
How will you reverse an ArrayList?
You can reverse an ArrayList using the reverse() function of the Collections class. The syntax for this is as follows:
public static void reverse(Collection c)
11. What is “BlockingQueue?”
The BlockingQueue interface is present in the java.util.concurrent package. Its primary purpose is to enhance flow control by activating blocking whenever a thread tries to is de-queue an empty queue or en-queue an existing full queue. The BlockingQueue interface does not accept null values, and if you try to insert a null value, it will display a NullPointerException.
12. Explain “Priority Queue.”
A Priority Queue is an abstract data type such as a standard queue or stack data structure. However, in this queue, each element has a unique feature called “priority”. Since it is based on a priority heap, Priority Queue serves the high priority element before a low priority element, irrespective of their insertion order. In a Priority Queue, the elements are either ordered according to the natural ordering or by a Comparator used at queue construction time (depends on which constructor you use).
13. How does the HashSet class store elements?
The HashSet class is a member of the Java Collections framework that inherits the AbstractSet class and implements the Set interface.
HashSet implements a Hashtable both for creating and storing a collection of elements. A Hashtable is an instance of the HashMap class that uses a hashing mechanism to store data within a HashSet. Hashing refers to the technique of converting information into a unique value known as the Hash Code. The Hash Code indexes the data associated with the unique key.
14. Is it possible to add a null element into a TreeSet or HashSet?
While you can add only one null element in a HashSet, you cannot do so in a TreeSet because it uses a NavigableMap for storing the elements. The NavigableMap is a subtype of SortedMap that doesn’t accept/support null values. If you insert a null element to a TreeSet, it will trigger a NullPointerException.
15. What does the emptySet() function do?
In Java, the Collections.emptySet() is used to return the empty immutable set by eliminating all the null elements. Here’s the syntax for declaring an emptySet():
public static final <T> Set<T> emptySet()
16. Why does the Map interface not extend the Collection Interface?
While the Map interface follows a key-value pair structure, the Collection interface stores a collection of objects in a structured manner with a defined access mechanism. Map doesn’t extend the Collection interface because the add(E e) function of the Collection interface does not support the key-value pair model of Map’s put(K key, V value) function.
17. Name the different Collection views extended by the Map interface.
The Map interface offers three views of key-value pairs, namely:
- Key set view
- Value set view
- Entry set view
18. List the core features of Java Hashmap.
The fundamental features of Hashmap are:
- You can store the elements by forming key-value pairs and retrieve the value by passing the key to the correct method.
- It displays NoSuchElementException if no element exists in the Map.
- It stores only object references, making it impossible to use primitive data types like double or int. Instead, you can use a wrapper class like Integer or Double.
Must Read: Java Interview Questions & Answers
19. Define “Stack.”
In Java, a Stack denotes a designated area of a computer’s memory that holds temporary variables created by a function. Variables are declared, stored, and initialized during runtime in a Stack.
20. Define “Big-O notation.”
The Big-O notation defines an algorithm’s performance in relation to the number of elements in a data structure. Collection classes are data structures, and hence, you need to use the Big-O notation to decide which collection implementation to use based on memory, time, and performance.
If you’re interested to learn more about Java, full-stack software development, check out upGrad & IIIT-B’s PG Diploma in Full-stack Software Development which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects, and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.