Java Collections interview questions
Java Collections interview questions
Q. 1. Difference Between List and Set in Java
- **List**:
- Ordered collection that allows duplicate elements.
- Examples: `ArrayList`, `LinkedList`.
- **Set**:
- Unordered collection that does not allow duplicate elements.
- Examples: `HashSet`, `TreeSet`.
Q. 2. Difference Between Collection and Collections in Java
- **Collection**:
- The root interface in the Java Collections Framework.
- Provides methods to add, remove, and query elements.
- **Collections**:
- A utility class that provides static methods to operate on or return collections, such as sorting and searching.
Q. 3. Difference Between Array and ArrayList in Java
- **Array**:
- Fixed size, can store primitives and objects.
- Faster access and more memory efficient.
- **ArrayList**:
- Resizable array, can only store objects.
- Provides more functionality like dynamic resizing and various methods for manipulation.
Q. 4. Difference between ArrayList and LinkedList in Java
- **ArrayList**:
- Uses a dynamic array to store elements.
- Better for random access and frequent reads.
- **LinkedList**:
- Uses a doubly linked list.
- Better for frequent insertions and deletions.
Q. 5. Difference Between HashSet and LinkedHashSet in Java
- **HashSet**:
- Unordered collection, does not maintain insertion order.
- Faster operations (O(1)).
- **LinkedHashSet**:
- Maintains insertion order.
- Slightly slower than `HashSet`.
Q. 6. Difference Between HashSet and TreeSet in Java
- **HashSet**:
- Unordered collection, faster operations (O(1)).
- **TreeSet**:
- Ordered collection, elements are sorted.
- Slower operations (O(log n)).
Q. 7. HashSet vs LinkedHashSet vs TreeSet in Java
- **HashSet**:
- Unordered, fastest access.
- **LinkedHashSet**:
- Maintains insertion order, slightly slower than `HashSet`.
- **TreeSet**:
- Maintains sorted order, slowest among the three.
Q. 8. Difference Between HashMap and HashTable in Java
- **HashMap**:
- Not synchronized, allows one null key and multiple null values.
- Better performance, not thread-safe.
- **Hashtable**:
- Synchronized, does not allow null keys or values.
- Thread-safe but slower.
Q. 9. Difference Between HashSet and HashMap in Java
- **HashSet**:
- Implements the Set interface.
- Stores unique elements.
- **HashMap**:
- Implements the Map interface.
- Stores key-value pairs, keys are unique.
Q. 10. HashMap vs LinkedHashMap in Java
- **HashMap**:
- Unordered, faster operations.
- **LinkedHashMap**:
- Maintains insertion order or access order.
- Slightly slower than `HashMap`.
Q. 11. Difference between HashMap, LinkedHashMap, and TreeMap in Java
- **HashMap**:
- Unordered, fastest access.
- **LinkedHashMap**:
- Maintains insertion or access order, slightly slower than `HashMap`.
- **TreeMap**:
- Maintains sorted order based on keys, slowest among the three.
Q. 12. Collections vs Streams in Java
- **Collections**:
- Used for storing and manipulating groups of data.
- Supports external iteration.
- **Streams**:
- Provides a functional approach to processing sequences of elements.
- Supports internal iteration and functional programming.
Q. 13. How does the Size of the ArrayList Increase Dynamically?
- The `ArrayList` increases its size by 50% of its current size when it becomes full. This involves creating a new, larger array and copying the elements to it.
Q. 14. How To Remove Duplicate Elements From ArrayList In Java?
You can remove duplicates using a `Set`: