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