The Java Collections Framework is essential for every Java developer. Here’s a comprehensive guide.
Collection Hierarchy
Collection
├── List
│ ├── ArrayList
│ ├── LinkedList
│ └── Vector
├── Set
│ ├── HashSet
│ ├── LinkedHashSet
│ └── TreeSet
└── Queue
├── PriorityQueue
└── Deque
└── ArrayDeque
Lists
ArrayList
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.get(0); // "Java"
list.remove(0);
LinkedList
List<String> list = new LinkedList<>();
list.add("First");
list.add("Last");
// Better for frequent insertions/deletions
Sets
HashSet
Set<String> set = new HashSet<>();
set.add("Java");
set.add("Java"); // Duplicate ignored
set.contains("Java"); // true
TreeSet
Set<String> set = new TreeSet<>();
set.add("Zebra");
set.add("Apple");
// Automatically sorted: [Apple, Zebra]
Maps
Map<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
map.get("Java"); // 1
map.containsKey("Java"); // true
Best Practices
- Use ArrayList for random access
- Use LinkedList for frequent insertions
- Use HashSet for unique elements
- Use TreeSet for sorted unique elements
- Use HashMap for key-value pairs
Conclusion
Master Java Collections to write efficient code! 📚