
자바에서 데이터를 효율적으로 다루려면 Collection을 제대로 이해해야 합니다. 코딩테스트에서는 특히 다양한 컬렉션을 활용하는 문제들이 많이 나오는데요! 어떤 상황에서 어떤 컬렉션을 써야 하는지, 그리고 주요 메서드까지 정리해드릴게요. 😎
Collection은 여러 개의 데이터를 효율적으로 저장하고 관리하기 위한 자바의 자료구조 라이브러리입니다. 크게 List, Set, Queue, Map으로 나뉘며, 각 컬렉션은 특정한 특성을 가지고 있어요.
📌 Collection 주요 특징
ArrayList, LinkedList, VectorHashSet, TreeSet, LinkedHashSetPriorityQueue, DequeHashMap, TreeMap, LinkedHashMap💡 코딩테스트에서는 빠른 접근이 중요한 경우 HashMap, 정렬이 필요한 경우 TreeSet, 순서를 유지해야 하면 LinkedList 등을 사용합니다.
ArrayList (배열 기반 리스트, 빠른 조회)get() 속도 빠름 (O(1)), add() 속도 빠름 (O(1))List<Integer> list = new ArrayList<>();
list.add(10); // 값 추가
list.get(0); // 값 가져오기
list.size(); // 크기 확인
list.remove(0); // 값 삭제LinkedList (연결 리스트, 빠른 삽입/삭제)add()/remove() 속도 빠름 (O(1))LinkedList<Integer> list = new LinkedList<>();
list.addFirst(1); // 앞에 추가
list.addLast(2); // 뒤에 추가
list.removeFirst(); // 앞에서 삭제
list.removeLast(); // 뒤에서 삭제HashSet (중복 제거, 빠른 검색)contains() 속도 빠름 (O(1)), 순서 없음Set<Integer> set = new HashSet<>();
set.add(3);
set.contains(3); // 포함 여부 확인
set.remove(3); // 삭제PriorityQueue (우선순위 큐, 힙 기반 정렬 구조)PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.add(5);
pq.add(2);
pq.poll(); // 최솟값 반환 후 삭제HashMap (Key-Value 저장, 빠른 검색)get()/put() 속도 빠름 (O(1))Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);
map.get("apple"); // 값 가져오기
map.containsKey("apple"); // 키 존재 여부 확인| 상황 | 추천 컬렉션 |
|---|---|
| 데이터 순서 유지 & 빠른 조회 | ArrayList |
| 빠른 삽입/삭제 필요할 때 | LinkedList |
| 중복 제거 & 빠른 탐색 | HashSet |
| 정렬이 필요한 경우 | TreeSet |
| 우선순위가 중요한 경우 | PriorityQueue |
| (Key, Value) 저장 & 빠른 검색 | HashMap |
자바에서 Collection을 잘 활용하면 코딩테스트에서 코드 속도와 가독성을 높일 수 있습니다. 코딩테스트 문제를 풀 때는 필요한 기능이 무엇인지 먼저 판단한 뒤, 가장 적절한 컬렉션을 선택하는 것이 중요해요! 🚀
여러분은 코딩테스트에서 어떤 컬렉션을 가장 자주 사용하시나요? 🤔 댓글로 공유해 주세요! 😊