Skip to content

Instantly share code, notes, and snippets.

@charlires
Last active November 3, 2023 03:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save charlires/1ef596fe8cde3d520d47d6e2b285eb2c to your computer and use it in GitHub Desktop.
Save charlires/1ef596fe8cde3d520d47d6e2b285eb2c to your computer and use it in GitHub Desktop.
java_for_algorithms.md

Java Algorithm Cheat Sheet.

Variables

// String
String str = "var";
str.length();

// Numbers
Integer num = 13;
int num = 13;
float decimal = 1.0f;

// PARSE
var str = String.valueOf(300);
var num = Integer.valueOf("300") // throws NumberFormatException
var num = Float.valueOf("3.45") // throws NumberFormatException

Math

import java.lang.Math;

Math.abs(-1); // 1
Math.min(2, 1); // 1
Math.max(9, 10); // 1   
Math.floor(3/2); // 1.0
Math.ceil(3/2); // 2.0
Math.sqrt(25); // 5.0
Math.pow(2, 3); // 8.0

Random

import java.util.Random;

// Create a Random object
Random random = new Random();
int randomInt = random.nextInt(100);
double randomDouble = random.nextDouble();
float randomFloat = random.nextFloat();

Conditionals

if (true && false || true) {
    // true
} else if (12.0f == 12) {
    // true
} else if (null == null) {
    // true
} else {
    // else
}

Arrays

import java.util.Arrays;

// ARRAYS
Integer[] myIntArray = { 1, 2, 3, 4 };
var myArray = new Integer[] { 1, 2, 3 };
var myArray = new String[] { "1", "2", "3" };
myArray.length

Arrays.sort(myArray, (n1, n2) -> n1 - n2);
Arrays.sort(myArray, (n1, n2) -> Integer.valueOf(n1) - Integer.valueOf(n2));

Arrays.sort(myArray);
Arrays.sort(myArray, Collections.reverseOrder());

// to list
var list1 = Arrays.asList(myArray);

Lists

import java.util.ArrayList;

var list = new ArrayList<Integer>();
list.add(1); // [1]
list.add(2); // [1, 2]
// (index, value)
list.add(2, 1); // [0, 1] trows IndexOutOfBoundsException
list.get(1); // 2
list.indexOf(0); // -1
if (list.contains(1)) {
    list.remove(1); // returns bool : return at index
}
list.size();

// sort
list.sort(null);
list.sort(Collections.reverseOrder());
Collections.sort(list);
Collections.sort(list, Collections.reverseOrder());
Collections.sort(list, (a, b) -> a - b);

Loops

import java.util.Array;
import java.util.Iterator;

var list = Arrays.asList("Alice", "Bob", "Charlie")

for (String name : list) {
    System.out.println(list);
}

list.forEach((n) -> {
    System.out.println(n);
});

for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}

Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
    String name = iterator.next();
}

list.stream()
    .forEach(name -> System.out.println(name));

Queues and Stacks

import java.util.Stack;

// STACK
var stack = new Stack<Integer>();
stack.push(0);
stack.push(1);
stack.push(2);
stack.peek(); // 2
stack.pop(); // 2

stack.empty(); // false
stack.size(); // 2

while (!stack.empty()) {
    int a = stack.pop();
    System.out.println(a);
}

// QUEUE
import java.util.ArrayDeque;

var queue = new ArrayDeque<Integer>();
queue.add(0);
queue.add(1);
queue.add(2);
queue.remove(); // 0 throws NoSuchElementException if empty
queue.poll(); // 1 returns null if empty 
queue.peek(); // 2
queue.size(); // 1

while (!queue.isEmpty()) {
    int a = queue.poll();
    System.out.println(a);
}

HashSet

import java.util.HashSet;

var set = new HashSet<Integer>();
set.add(0);
if (set.contains(0)) {
    set.remove(0); // true
}

set.clear();
set.isEmpty(); // true

for (int num: set) {
    System.out.println(num);
}

HashMap

import java.util.HashMap;

var map = new HashMap<String, Integer>();
map.put("key1", 2);
map.get("key1"); // 2
map.getOrDefault("key2", 0); // 0

map.isEmpty(); // false
map.clear();
map.size(); // 1
map.remove("key"); // return value and removes it
if (map.containsKey("key1")) {
    map.get("key1");
}

// Set<String> keys = map.keySet();
for (String key : map.keySet()) {
    map.get(key);
}

Heap

import java.util.PriorityQueue;

var minHeap = new PriorityQueue<Integer>();
minHeap.add(1);
minHeap.add(4);
minHeap.peek(); // 1
minHeap.poll(); // 1
minHeap.isEmpty(); // false
for (Integer num : minHeap) {
    System.out.println(num);
}

var maxHeap = new PriorityQueue<Integer>(Comparator.reverseOrder());
maxHeap.add(3);
maxHeap.add(1);
maxHeap.peek(); // 3
maxHeap.poll(); // 3
maxHeap.isEmpty(); // false
for (Integer num : maxHeap) {
    System.out.println(num);
}

// from array
Integer[] array = { 3, 1, 5, 7, 2, 9 };
var minHeap = new PriorityQueue<Integer>(Arrays.asList(array));
var maxHeap = new PriorityQueue<Integer>(Comparator.reverseOrder());
maxHeap.addAll(Arrays.asList(array));

// to array
Integer[] maxHeapArray = maxHeap.toArray(new Integer[maxHeap.size()]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment