[Java] Collection에 대하여..

Sang_WJ·2025년 4월 3일
post-thumbnail

📌 자바 컬렉션 완전 정리! 코딩테스트 필수 개념 🚀


💡 자바 Collection, 이거만 알면 끝!

자바에서 데이터를 효율적으로 다루려면 Collection을 제대로 이해해야 합니다. 코딩테스트에서는 특히 다양한 컬렉션을 활용하는 문제들이 많이 나오는데요! 어떤 상황에서 어떤 컬렉션을 써야 하는지, 그리고 주요 메서드까지 정리해드릴게요. 😎


🔥 자바 Collection 개념부터 잡자!

✅ Collection이란?

Collection은 여러 개의 데이터를 효율적으로 저장하고 관리하기 위한 자바의 자료구조 라이브러리입니다. 크게 List, Set, Queue, Map으로 나뉘며, 각 컬렉션은 특정한 특성을 가지고 있어요.

📌 Collection 주요 특징

  • List (순서 보장, 중복 허용) → ArrayList, LinkedList, Vector
  • Set (순서X, 중복X) → HashSet, TreeSet, LinkedHashSet
  • Queue (FIFO 구조) → PriorityQueue, Deque
  • Map (Key-Value 저장) → HashMap, TreeMap, LinkedHashMap

💡 코딩테스트에서는 빠른 접근이 중요한 경우 HashMap, 정렬이 필요한 경우 TreeSet, 순서를 유지해야 하면 LinkedList 등을 사용합니다.


🎯 코딩테스트에서 자주 쓰는 컬렉션과 주요 메서드

1️⃣ ArrayList (배열 기반 리스트, 빠른 조회)

  • 특징: 가변 크기 배열, get() 속도 빠름 (O(1)), add() 속도 빠름 (O(1))
  • 자주 쓰는 메서드
    List<Integer> list = new ArrayList<>();
    list.add(10);  // 값 추가
    list.get(0);   // 값 가져오기
    list.size();   // 크기 확인
    list.remove(0); // 값 삭제

2️⃣ LinkedList (연결 리스트, 빠른 삽입/삭제)

  • 특징: 노드 기반 리스트, add()/remove() 속도 빠름 (O(1))
  • 자주 쓰는 메서드
    LinkedList<Integer> list = new LinkedList<>();
    list.addFirst(1);  // 앞에 추가
    list.addLast(2);   // 뒤에 추가
    list.removeFirst(); // 앞에서 삭제
    list.removeLast();  // 뒤에서 삭제

3️⃣ HashSet (중복 제거, 빠른 검색)

  • 특징: contains() 속도 빠름 (O(1)), 순서 없음
  • 자주 쓰는 메서드
    Set<Integer> set = new HashSet<>();
    set.add(3);
    set.contains(3);  // 포함 여부 확인
    set.remove(3);    // 삭제

4️⃣ PriorityQueue (우선순위 큐, 힙 기반 정렬 구조)

  • 특징: 자동 정렬됨 (최소 힙이 기본)
  • 자주 쓰는 메서드
    PriorityQueue<Integer> pq = new PriorityQueue<>();
    pq.add(5);
    pq.add(2);
    pq.poll(); // 최솟값 반환 후 삭제

5️⃣ 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을 잘 활용하면 코딩테스트에서 코드 속도와 가독성을 높일 수 있습니다. 코딩테스트 문제를 풀 때는 필요한 기능이 무엇인지 먼저 판단한 뒤, 가장 적절한 컬렉션을 선택하는 것이 중요해요! 🚀

여러분은 코딩테스트에서 어떤 컬렉션을 가장 자주 사용하시나요? 🤔 댓글로 공유해 주세요! 😊

profile
성장의 흔적을 남기는 블로그입니다.

0개의 댓글