Java Snippets

Java Snippets#

Array#

Arrays.fill(array, value);

/** Copy array: */
System.arraycopy(
 int[]    source_array,
 int      start,
 int[]    dest_array,
 int      start2,
 int      end
);

Map#

map.getOrDefault(key, defaultVal);

map.putIfAbsent(key, value);

//smallest
treeMap.firstEntry();
// greatest key less than 'k'
treeMap.floorKey(int k);
// greatest entry with key less than 'k'
treeMap.floorEntry(int k);

Set#

/** Similar to tree map => tree set: */
// smallest
treeSet.first();
// greatest element less than 'k'
treeSet.floor(int k);
// smallest element with key greater than 'k'
treeSet.ceiling(int k);

Queue#

PriorityQueue minHeap = new PriorityQueue<>();
PriorityQueue maxHeap = new PriorityQueue<>(Comparator.reverseOrder());

Bitwise Tricks#

Test kth bit:

s & (1 << k)

Set kth bit:

s |= (1 << k)

Turn off kth bit:

s &= ~(1 << k)

Toggle kth bit:

s ^= (1 << k)

Multiple by 2n:

s << n

Divide by 2n:

s >> n

Intersection:

s & t

Union:

s | t

Set Subtraction:

s & ~t

Extract lowest set bit:

s & (-s)

Extract lowest unset bit:

~s & (s + 1)

Swap Values:

x ^= y; y ^= x; x ^= y