입출력

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
		    //읽어 오기 위한 객체
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        //쓰기 위한 객체(String + String 으로 직접 더하면 성능 저하)
        StringBuilder sb = new StringBuilder();
        
        // 입력 처리
        StringTokenizer st = new StringTokenizer(br.readLine());
        //String -> Integer
        int N = Integer.parseInt(st.nextToken());
        
        // StringBuilder 저장
        sb.append(N).append(" ");
        
        // 최종 출력
        System.out.println(sb);
    }
}

정렬

import java.util.Arrays;

int[] arr = {3, 1, 4, 1, 5, 9};

// 오름차순 정렬
Arrays.sort(arr);
// 내림차순
Arrays.sort(arr, (a, b) -> Integer.compare(b, a));
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

List<Integer> list = new ArrayList<>(List.of(3, 1, 4, 1, 5, 9));

// 1. 오름차순 정렬
Collections.sort(list);

// 2. 내림차순 정렬
Collections.sort(list, Collections.reverseOrder());

Stack, Queue → Deque

import java.util.ArrayDeque;
import java.util.Deque;

Deque<Integer> queue = new ArrayDeque<>();
Deque<Integer> stack = new ArrayDeque<>();

// Queue (FIFO)로 사용 시
queue.offer(1); // push
int val = queue.poll(); // pop

// Stack (LIFO)로 사용 시
stack.push(1);
int top = stack.pop();

숫자

int maxV = Integer.MAX_VALUE; //인티저 중 가장 큰 수
int minV = Integer.MIN_VALUE;

int maxVal = Math.max(a, b); //큰 값
int minVal = Math.min(a, b); //작은 값
int absVal = Math.abs(-10); // 절대값
int powVal = (int) Math.pow(2, 10); // 거듭제곱 (반환 타입이 double)