Attic
Collections

Cheatsheet

Master quick-reference lookup tables for Arrays, Strings, Lists, Maps, Sets, and Queues with return types, parameters, and time complexities

This master cheatsheet provides an instant-lookup reference for Java's primary data structures: Arrays, Strings, Lists, and Maps (along with Sets and Queues). Each section features a standout toolkit table listing exact method signatures, parameters, return types, asymptotic time complexities, and key notes.


Master Quick Navigation


1. Arrays Methods Toolkit

Methods provided by java.util.Arrays and native Java array runtime operations:

MethodParametersReturn TypeComplexityDescription / Notes
Arrays.sort(arr)(int[] | double[] | ...)voidO(n log n)Dual-Pivot Quicksort on primitive arrays (unstable)
Arrays.sort(T[] a, Comparator c)(T[] a, Comparator c)voidO(n log n)TimSort on object arrays (stable, adaptive)
Arrays.parallelSort(arr)(arr)voidO(n log n)Multi-threaded ForkJoinPool sort for arrays > 8192 items
Arrays.binarySearch(arr, key)(arr, key)intO(log n)Array must be sorted. Returns index or -(insertion_point) - 1
Arrays.fill(arr, val)(arr, val)voidO(n)Assigns val to every element slot
Arrays.fill(arr, from, to, val)(arr, int, int, val)voidO(k)Fills half-open subrange [from, to) with val
Arrays.equals(a, b)(a, b)booleanO(n)Element-by-element equality check
Arrays.deepEquals(a, b)(Object[], Object[])booleanO(R * C)Recursively checks multidimensional array equality
Arrays.toString(arr)(arr)StringO(n)Formats 1D array as "[e1, e2, ...]"; avoids [I@hash
Arrays.deepToString(arr)(Object[])StringO(R * C)Recursively formats nested 2D/3D matrices
Arrays.copyOf(arr, newLen)(arr, int)T[]O(n)Returns zero-padded or truncated copy
Arrays.copyOfRange(arr, from, to)(arr, int, int)T[]O(k)Slices subrange [from, to) into a new array
Arrays.mismatch(a, b)(a, b)intO(n)Index of first differing element, or -1 if identical (Java 9+)
Arrays.stream(arr)(arr)IntStream / Stream<T>O(1)Converts primitive or object array to Stream
Arrays.asList(T... a)(T... a)List<T>O(1)Fixed-size list backed by original array; cannot add/remove
System.arraycopy(src, sp, dest, dp, len)(src, int, dest, int, int)voidO(k)JVM native memory copy (memmove); fastest array slice copy
arr.clone()()T[]O(n)Deep copy for 1D primitive array; shallow copy for 2D/object array

2. Strings & StringBuilder Toolkit

String Core Methods (Immutable)

MethodParametersReturn TypeComplexityDescription / Notes
charAt(index)(int index)charO(1)Returns char at index (throws StringIndexOutOfBoundsException)
length()()intO(1)Number of UTF-16 code units
substring(beginIndex)(int begin)StringO(k)Slices string from begin to end of string
substring(begin, end)(int begin, int end)StringO(k)Half-open slice [begin, end)
indexOf(str)(String str)intO(n * m)First occurrence index, or -1 if absent
indexOf(ch, fromIndex)(int ch, int from)intO(n)Searches forward starting at from index
lastIndexOf(str)(String str)intO(n * m)Last occurrence index, or -1 if absent
contains(charSeq)(CharSequence s)booleanO(n * m)Evaluates indexOf(s.toString()) >= 0
startsWith(prefix)(String prefix)booleanO(k)Tests if string begins with prefix
endsWith(suffix)(String suffix)booleanO(k)Tests if string terminates with suffix
equals(obj)(Object anObject)booleanO(n)Value-based character comparison (never use == for strings)
equalsIgnoreCase(str)(String anotherString)booleanO(n)Case-insensitive character equality
compareTo(anotherString)(String anotherString)intO(n)Lexicographical order: < 0, 0, or > 0
toLowerCase() / toUpperCase()()StringO(n)Converts case using default locale
trim()()StringO(n)Strips ASCII whitespace (<= '\u0020')
strip()()StringO(n)Strips all Unicode whitespace (Java 11+; preferred over trim())
split(regex)(String regex)String[]O(n)Splits around regex match (e.g. split("\\s+"))
String.join(delim, elems)(CharSequence, Iterable)StringO(n)Joins elements with delimiter: String.join(", ", list)
replace(target, replacement)(CharSequence, CharSequence)StringO(n)Replaces every literal matching substring
replaceAll(regex, replacement)(String regex, String repl)StringO(n)Replaces regex matches across string
toCharArray()()char[]O(n)Copies string characters into a fresh mutable char[]
isEmpty()()booleanO(1)Checks length() == 0
isBlank()()booleanO(n)Returns true if empty or only Unicode whitespace (Java 11+)
repeat(count)(int count)StringO(n * count)Repeats string count times (Java 11+)
String.valueOf(data)(Object | int | char[])StringO(n)Converts any type/primitive to String

StringBuilder Methods (Mutable Buffer)

MethodParametersReturn TypeComplexityDescription / Notes
append(val)(String | int | char | ...)StringBuilderO(k) amortizedAppends characters to tail; expands internal buffer if full
insert(offset, val)(int offset, Object val)StringBuilderO(n)Inserts at offset; shifts subsequent characters right
delete(start, end)(int start, int end)StringBuilderO(n)Removes characters in range [start, end)
deleteCharAt(index)(int index)StringBuilderO(n)Removes single character at index
replace(start, end, str)(int, int, String)StringBuilderO(n)Replaces slice [start, end) with str
reverse()()StringBuilderO(n)Reverses characters in-place
setCharAt(index, ch)(int index, char ch)voidO(1)Mutates single character at index
charAt(index)(int index)charO(1)Reads character at index
setLength(newLength)(int newLength)voidO(1) / O(n)Truncates or pads with null chars (\0)
toString()()StringO(n)Converts mutable buffer to immutable String

3. Lists Toolkit (ArrayList, LinkedList)

MethodParametersReturn TypeArrayListLinkedListDescription / Notes
get(index)(int index)EO(1)O(n)Direct index calculation vs sequential pointer traversal
set(index, e)(int index, E e)EO(1)O(n)Overwrites index slot; returns displaced element
add(e)(E e)booleanO(1) amortizedO(1)Appends to tail
add(index, e)(int index, E e)voidO(n)O(n) / O(1) headShifts subsequent elements rightward
remove(index)(int index)EO(n)O(n) / O(1) headShifts remaining elements leftward; returns removed item
remove(o)(Object o)booleanO(n)O(n)Removes first occurrence matching .equals()
indexOf(o)(Object o)intO(n)O(n)First index of element, or -1 if absent
lastIndexOf(o)(Object o)intO(n)O(n)Last index of element, or -1 if absent
contains(o)(Object o)booleanO(n)O(n)Evaluates indexOf(o) >= 0
size()()intO(1)O(1)Number of elements in the list
isEmpty()()booleanO(1)O(1)Evaluates size() == 0
clear()()voidO(n)O(n)Resets list; sets internal references to null
subList(from, to)(int from, int to)List<E>O(1)O(1)Live backed view [from, to); structural mutations reflect
sort(comparator)(Comparator<? super E> c)voidO(n log n)O(n log n)In-place TimSort (Java 8+)
toArray(T[] a)(T[] a)T[]O(n)O(n)Copies to array: list.toArray(new String[0])
removeIf(filter)(Predicate<? super E> f)booleanO(n)O(n)Removes matching elements without iterator trap
replaceAll(op)(UnaryOperator<E> op)voidO(n)O(n)Mutates each element in-place via lambda
List.of(e...)(E... elements)List<E>O(n)—Unmodifiable, non-null list factory (Java 9+)

4. Maps Toolkit (HashMap, TreeMap)

Key-Value Lookups & Mutators

MethodParametersReturn TypeHashMapTreeMapDescription / Notes
put(key, val)(K key, V val)VO(1) amortizedO(log n)Inserts mapping; returns old value or null
get(key)(Object key)VO(1) amortizedO(log n)Retrieves value, or null if key absent
getOrDefault(key, defVal)(Object key, V defVal)VO(1) amortizedO(log n)Returns defVal if key is absent (Java 8+)
containsKey(key)(Object key)booleanO(1) amortizedO(log n)Fast hash check / binary search for key
containsValue(val)(Object val)booleanO(n)O(n)Full scan across all values
remove(key)(Object key)VO(1) amortizedO(log n)Removes key entry; returns removed value
remove(key, val)(Object k, Object v)booleanO(1) amortizedO(log n)Removes only if mapped to exact val
putIfAbsent(key, val)(K key, V val)VO(1) amortizedO(log n)Sets value only if key absent or mapped to null
replace(key, val)(K key, V val)VO(1) amortizedO(log n)Replaces value only if key is currently present
keySet()()Set<K>O(1)O(1)Live set view of keys (mutating set mutates map)
values()()Collection<V>O(1)O(1)Live collection view of values
entrySet()()Set<Map.Entry<K,V>>O(1)O(1)Live set view of key-value pair entries
size()()intO(1)O(1)Number of key-value mappings
isEmpty()()booleanO(1)O(1)Evaluates size() == 0
clear()()voidO(n)O(n)Empties all table buckets / tree nodes

Modern Java 8+ Functional & Compute Methods

MethodParametersReturn TypeCode Pattern / Production Use Case
computeIfAbsent(k, fn)(K k, Function<K,V> fn)VMulti-map grouping: map.computeIfAbsent(id, k -> new ArrayList<>()).add(item)
computeIfPresent(k, biFn)(K k, BiFunction<K,V,V> biFn)VConditional update; removes entry if lambda returns null
compute(k, biFn)(K k, BiFunction<K,V,V> biFn)VCalculates new value using key and current value
merge(k, v, biFn)(K k, V v, BiFunction<V,V,V> biFn)VFrequency counter: map.merge(word, 1, Integer::sum)
forEach(biConsumer)(BiConsumer<? super K, ? super V> action)voidClean iteration: map.forEach((k, v) -> System.out.println(k + "=" + v))

TreeMap / NavigableMap Sorted Range Methods

MethodParametersReturn TypeComplexitySearch Boundary
firstKey() / lastKey()()KO(log n)Smallest / largest sorted key
firstEntry() / lastEntry()()Map.Entry<K,V>O(log n)Smallest / largest key-value entry (read-only)
floorKey(key)(K key)KO(log n)Greatest key <= key (or null)
ceilingKey(key)(K key)KO(log n)Smallest key >= key (or null)
lowerKey(key)(K key)KO(log n)Strictly greatest key < key (or null)
higherKey(key)(K key)KO(log n)Strictly smallest key > key (or null)
pollFirstEntry() / pollLastEntry()()Map.Entry<K,V>O(log n)Retrieves and removes min / max entry
subMap(fromKey, fInc, toKey, tInc)(K, boolean, K, boolean)NavigableMap<K,V>O(1)Live range sub-view between key bounds

5. Sets & Queues Toolkit

Set<E> & NavigableSet<E> (HashSet, TreeSet)

MethodParametersReturn TypeHashSetTreeSetDescription / Notes
add(e)(E e)booleanO(1) amortizedO(log n)Adds element; returns false if already contained
contains(o)(Object o)booleanO(1) amortizedO(log n)Checks presence via hashCode/equals or compareTo
remove(o)(Object o)booleanO(1) amortizedO(log n)Removes element from set
first() / last()()E—O(log n)Retrieves min / max element in TreeSet
floor(e) / ceiling(e)(E e)E—O(log n)Greatest <= e / Smallest >= e
lower(e) / higher(e)(E e)E—O(log n)Strictly < e / Strictly > e
pollFirst() / pollLast()()E—O(log n)Retrieves and removes min / max element

Queue<E> & Deque<E> (ArrayDeque, LinkedList, PriorityQueue)

OperationThrows ExceptionReturns False / NullReturn TypeArrayDequeLinkedListPriorityQueueDescription
Enqueueadd(e)offer(e)booleanO(1) amortizedO(1)O(log n)Appends element to queue tail
Dequeueremove()poll()EO(1)O(1)O(log n)Removes head element (or null if empty)
Examineelement()peek()EO(1)O(1)O(1)Inspects head without removal
Stack Pushpush(e)offerFirst(e)void / booleanO(1) amortizedO(1)—LIFO push to stack top
Stack Poppop()pollFirst()EO(1)O(1)—LIFO pop from stack top
Stack Peekpeek()peekFirst()EO(1)O(1)—LIFO inspect stack top

6. Master Complexity Profile

Data StructureDirect AccessInsert (Head)Insert (Tail)Delete (Element)ContainsOrdering GuaranteedNull Elements Permitted
1D Array (T[])O(1)O(n)O(n) resizeO(n) shiftO(n) / O(log n) sortedIndex orderYes (objects)
StringO(1) char———O(n * m)Immutable sequenceNo
StringBuilderO(1) charO(n) shiftO(1) amortizedO(n) shiftO(n * m)Mutable sequenceAppends "null"
ArrayListO(1)O(n) shiftO(1) amortizedO(n) shiftO(n)Insertion orderYes
LinkedListO(n)O(1)O(1)O(1) nodeO(n)Insertion orderYes
ArrayDequeO(1)O(1) amortizedO(1) amortizedO(n)O(n)FIFO / LIFONo (throws NPE)
PriorityQueueO(1) peekO(log n)O(log n)O(n) searchO(n)Min/Max HeapNo (throws NPE)
HashSet—O(1) amortizedO(1) amortizedO(1) amortizedO(1) amortizedUnordered1 null allowed
TreeSet—O(log n)O(log n)O(log n)O(log n)Sorted / NaturalNo (throws NPE)
HashMapO(1) keyO(1) amortizedO(1) amortizedO(1) amortizedO(1) keyUnordered1 null key, any null values
TreeMapO(log n) keyO(log n)O(log n)O(log n)O(log n) keySorted keysNo null keys

On this page