여러 개의 값을 저장하고 그 값을 쉽고, 효율적으로 처리해주는 표준화 클래스의 집합 입니다. 쉽게 말하자면 Data structure인 리스트, 큐, 스택, 해시맵 등을 직접 구현하지 않고 쉽게 사용할 수 있습니다. 대표적으로 ArrayList , Stack, Queue, ArrayDeque, HashMap 등이 있습니다.
컬렉션 프레임워크의 주요 클래스
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
// Create
ArrayList<String> list = new ArrayList<>();
list.add("Apple");
list.add("Banana");
// Read
System.out.println(list.get(0)); // Apple
// Update
list.set(1, "Cherry");
System.out.println(list.get(1)); // Cherry
// Delete
list.remove(0);
System.out.println(list); // [Cherry]
}
}
LIFO(Last In First Out) 구조로, 요소를 쌓아 올리는 형식입니다.import java.util.Stack;
public class StackExample {
public static void main(String[] args) {
// Create
Stack<String> stack = new Stack<>();
stack.push("A");
stack.push("B");
// Read
System.out.println(stack.peek()); // B
// Update (Stack에서는 update가 아닌 pop 후 push로 처리)
stack.pop(); // 제거
stack.push("C"); // 새 요소 추가
// Delete
stack.pop(); // C 제거
System.out.println(stack); // [A]
}
}
FIFO(First In First Out) 구조로, 먼저 들어온 요소가 먼저 나갑니다.import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
// Create
Queue<String> queue = new LinkedList<>();
queue.add("1");
queue.add("2");
// Read
System.out.println(queue.peek()); // 1
// Update (Queue는 직접적으로 업데이트 불가, 제거 후 추가)
queue.poll(); // 1 제거
queue.add("3"); // 새 요소 추가
// Delete
queue.poll(); // 2 제거
System.out.println(queue); // [3]
}
}
import java.util.ArrayDeque;
public class ArrayDequeExample {
public static void main(String[] args) {
// Create
ArrayDeque<String> deque = new ArrayDeque<>();
deque.add("X");
deque.add("Y");
// Read
System.out.println(deque.peekFirst()); // X
// Update (Update가 아닌 제거 후 추가)
deque.pollFirst(); // X 제거
deque.addFirst("Z"); // 새 요소 추가
// Delete
deque.pollLast(); // Y 제거
System.out.println(deque); // [Z]
}
}
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
// Create
HashMap<String, Integer> map = new HashMap<>();
map.put("Apple", 1);
map.put("Banana", 2);
// Read
System.out.println(map.get("Apple")); // 1
// Update
map.put("Apple", 3); // 값 업데이트
System.out.println(map.get("Apple")); // 3
// Delete
map.remove("Banana");
System.out.println(map); // {Apple=3}
}
}