Java Collections Quick Reference for LeetCode
Java Collections Quick Reference for LeetCode
Part of the Java Guide. See also Language Basics for a full tutorial.
Strings
String s = "abc";
s.length();
s.isEmpty();
s.charAt(i);
s.substring(start, end);
s.indexOf("ab");
s.equals("abc");
s + "def";
String.valueOf(42);
Integer.parseInt("42");
Arrays
int[] a = new int[n];
int[] b = {1, 2, 3};
a.length;
a[i] = 10;
Arrays.sort(a);
Arrays.fill(a, 0);
Arrays.copyOf(a, a.length);
Arrays.binarySearch(a, key);
ArrayList / List
List<Integer> list = new ArrayList<>();
list.add(x);
list.get(i);
list.set(i, x);
list.size();
list.remove(list.size() - 1);
Collections.sort(list);
HashMap / HashSet
Map<String, Integer> map = new HashMap<>();
map.put(key, val);
map.get(key);
map.getOrDefault(key, 0);
map.containsKey(key);
for (var e : map.entrySet()) { e.getKey(); e.getValue(); }
Set<Integer> set = new HashSet<>();
set.add(x);
set.contains(x);
TreeMap / TreeSet (sorted)
TreeMap<Integer, Integer> tm = new TreeMap<>();
tm.floorKey(x);
tm.ceilingKey(x);
TreeSet<Integer> ts = new TreeSet<>();
Stack / Queue / Deque
Deque<Integer> stack = new ArrayDeque<>();
stack.offer(x);
stack.poll();
stack.peek();
Queue<Integer> q = new LinkedList<>();
q.offer(x);
q.poll();
q.peek();
PriorityQueue (heap)
// min-heap (default)
PriorityQueue<Integer> minHeap = new PriorityQueue<>();
// max-heap
PriorityQueue<Integer> maxHeap = new PriorityQueue<>(Comparator.reverseOrder());
minHeap.offer(x);
minHeap.poll();
minHeap.peek();
Sorting & binary search
Arrays.sort(arr);
Arrays.sort(arr, Collections.reverseOrder());
Collections.sort(list);
int idx = Arrays.binarySearch(arr, key); // arr must be sorted
Math.max(a, b);
Math.min(a, b);
Math.abs(x);
Bit tricks
Integer.bitCount(x);
Integer.numberOfLeadingZeros(x);
x & (x - 1); // clear lowest set bit
x & -x; // isolate lowest set bit
Common LeetCode structures
| Concept | Java equivalent |
|---|---|
| Hash map | HashMap<K,V> |
| Hash set | HashSet<T> |
| Min heap | PriorityQueue<T> |
| Max heap | PriorityQueue + Comparator.reverseOrder() |
| Stack | Deque<T> / ArrayDeque |
| Queue | Queue<T> / LinkedList |
| String builder | StringBuilder |
Imports (local development)
import java.util.*;