logoNEURAL COOK
SearchAll PostsTagsNotesAuthor
logoNEURAL COOK

A posts created with Next.js and Tailwind.css

Explore

  • All posts
  • Notes
  • Snippets
  • Tags
  • RSS feed

Connect

instagramtwitterfacebookyoutubelinkedinmailgithub

© 2026 VIKI. All rights reserved.

Built with
Contents
Java/JVM architectureJava Collections : A Complete Guide for DSAJava Object Anatomy: What lives in Memory?The Java Dev Environment That Just WorksJava Utility MethodUnderstanding the Servlet Ecosystem: From Tomcat to Micronaut
DNSHTTPIP AddressThe Comprehensive DNS Master Guide: Architecture, Protocol, and GovernanceThe OSI Reference Model: A Comprehensive GuideThe TCP/IP Stack: The Architecture of the Internet
LogsExamplesResources
Miscellaneous/java

Java Collections : A Complete Guide for DSA

3 min read
On this pageList
ListArrayListLinkedListSetQueue and DequeQueueDequeStackPriorityQueueMin-HeapMax-HeapMap
CollectionAccess / SearchInsertDelete
ArrayListIndex O(1), search O(n)End O(1) amortizedEnd O(1), middle O(n)
LinkedListO(n)Ends O(1)Ends O(1)
HashSetO(1) averageO(1) averageO(1) average
TreeSetO(log n)O(log n)O(log n)
HashMapO(1) averageO(1) averageO(1) average
TreeMapO(log n)O(log n)O(log n)
PriorityQueuePeek O(1), search O(n)O(log n)Top O(log n)
ArrayDequeEnds O(1)Ends O(1)Ends O(1)

# List

A List stores elements in a sequence and allows duplicates.

OperationArrayListLinkedList
Get by indexO(1)O(n)
Add at endO(1) amortizedO(1)
Add/remove at beginningO(n)O(1)
Search by valueO(n)O(n)

# ArrayList

Best for:

  • Fast index-based access
  • Iterating through elements
  • Appending elements

# LinkedList

A doubly linked list that also implements Deque.

Best for:

  • Adding/removing at the ends
  • Queue or deque operations LinkedList list = new LinkedList<>();
list.addFirst(10);
list.addLast(20);

# Set

A Set stores unique values.

ImplementationOrderingTypical operation costUse when
HashSetNo guaranteed orderO(1) averageFast membership checks
LinkedHashSetInsertion orderO(1) averageUnique values, preserve insertion order
TreeSetSorted orderO(log n)Need sorted values or nearest-value queries

# Queue and Deque

# Queue

A typical queue follows FIFO: First In, First Out.

# Deque

A double-ended queue supports adding and removing at both ends.

Deque<Integer> deque = new ArrayDeque<>();
 
deque.offerFirst(10);
deque.offerLast(20);

# Stack

Use ArrayDeque instead of the legacy Stack class

Deque<Integer> stack = new ArrayDeque<>();
stack.push(10);
int top = stack.pop();
Data StructureOperationsTypical Time Complexity
Stackpush(), pop(), peek()O(1)
Queueoffer(), poll(), peek()O(1)

# PriorityQueue

A PriorityQueue retrieves elements by priority rather than insertion order.

OperationComplexity
InsertO(log n)
Peek minimum/maximumO(1)
Remove topO(log n)
Search arbitrary elementO(n)

# Min-Heap

By default, Java uses a min-heap.

PriorityQueue<Integer> pq = new PriorityQueue<>();
 
pq.offer(30);

# Max-Heap

PriorityQueue<Integer> maxHeap =
    new PriorityQueue<>(Collections.reverseOrder());

# Map

A Map stores key-value pairs.

ImplementationOrderingTypical operation costUse when
HashMapNo guaranteed orderO(1) averageFast lookup and frequency counting
LinkedHashMapInsertion order by defaultO(1) averagePreserve iteration order
TreeMapSorted by keyO(log n)Sorted keys, floor/ceiling, range queries
  • TreeMap methods — floorKey, ceilingKey, lowerKey, higherKey for range and interval problems.
  • computeIfAbsent() — convenient graph construction and grouping.
  • getOrDefault() - get value or return default value.
←PreviousJava/JVM architectureNext→Java Object Anatomy: What lives in Memory?

On this page

ListArrayListLinkedListSetQueue and DequeQueueDequeStackPriorityQueueMin-HeapMax-HeapMap