Dev
Java 컬렉션 프레임워크 인터페이스와 상속 관계
migrationArc
2024. 6. 18. 09:30
Java 컬렉션 프레임워크는 데이터를 그룹으로 관리하고 조작하는 데 사용되는 인터페이스와 클래스를 제공하는 중요한 구성 요소입니다. 이번 포스트에서는 Java의 주요 컬렉션 인터페이스와 그들의 상속 관계에 대해 알아보겠습니다.
주요 컬렉션 인터페이스
- Collection Interface:
- 모든 컬렉션 클래스가 구현해야 하는 기본 인터페이스입니다.
- 주요 메서드: add(), remove(), size(), clear(), contains(), isEmpty(), iterator(), 등.
- List Interface:
- 순서가 있는 요소의 컬렉션을 정의합니다. 중복 요소를 허용합니다.
- 구현 클래스: ArrayList, LinkedList, Vector, Stack.
- 주요 메서드: get(), set(), add(), remove(), indexOf(), lastIndexOf(), subList(), 등.
- Set Interface:
- 중복을 허용하지 않는 요소의 집합을 정의합니다.
- 구현 클래스: HashSet, LinkedHashSet, TreeSet.
- 주요 메서드: add(), remove(), contains(), size(), 등.
- SortedSet Interface:
- Set 인터페이스를 확장하며, 요소를 정렬된 상태로 유지합니다.
- 구현 클래스: TreeSet.
- 주요 메서드: first(), last(), headSet(), tailSet(), subSet(), 등.
- NavigableSet Interface:
- SortedSet을 확장하며, 네비게이션 메서드를 제공합니다.
- 구현 클래스: TreeSet.
- 주요 메서드: lower(), floor(), ceiling(), higher(), pollFirst(), pollLast(), 등.
- Queue Interface:
- FIFO(First-In-First-Out) 순서로 요소를 유지합니다.
- 구현 클래스: LinkedList, PriorityQueue, ArrayDeque.
- 주요 메서드: offer(), poll(), peek(), 등.
- Deque Interface:
- 양쪽 끝에서 요소를 추가하거나 제거할 수 있는 Queue를 정의합니다.
- 구현 클래스: ArrayDeque, LinkedList.
- 주요 메서드: addFirst(), addLast(), removeFirst(), removeLast(), getFirst(), getLast(), 등.
- Map Interface:
- 키와 값의 쌍으로 데이터를 저장합니다.
- 키는 중복을 허용하지 않으며, 각 키는 하나의 값에 매핑됩니다.
- 구현 클래스: HashMap, LinkedHashMap, TreeMap, Hashtable, Properties.
- 주요 메서드: put(), get(), remove(), containsKey(), containsValue(), keySet(), values(), 등.
- SortedMap Interface:
- Map 인터페이스를 확장하며, 키를 정렬된 상태로 유지합니다.
- 구현 클래스: TreeMap.
- 주요 메서드: firstKey(), lastKey(), headMap(), tailMap(), subMap(), 등.
- NavigableMap Interface:
- SortedMap을 확장하며, 네비게이션 메서드를 제공합니다.
- 구현 클래스: TreeMap.
- 주요 메서드: lowerKey(), floorKey(), ceilingKey(), higherKey(), pollFirstEntry(), pollLastEntry(), 등.
인터페이스 간의 상속 관계
Java 컬렉션 프레임워크의 인터페이스 간 상속 관계를 도식화하면 다음과 같습니다. 상속 관계는 하위 인터페이스에서 상위 인터페이스로의 상속을 의미하며, 이를 통해 각 인터페이스의 구조와 계층을 명확히 이해할 수 있습니다.
- Collection은 List, Set, Queue 인터페이스의 상위 인터페이스입니다.
- Set은 SortedSet 인터페이스의 상위 인터페이스입니다.
- SortedSet은 NavigableSet 인터페이스의 상위 인터페이스입니다.
- Queue는 Deque 인터페이스의 상위 인터페이스입니다.
- Map은 SortedMap 인터페이스의 상위 인터페이스입니다.
- SortedMap은 NavigableMap 인터페이스의 상위 인터페이스입니다.
결론
Java 컬렉션 프레임워크는 다양한 인터페이스를 통해 데이터 구조를 체계적으로 관리할 수 있도록 도와줍니다. 각 인터페이스의 특성과 상속 관계를 이해하면, 필요에 따라 적절한 컬렉션을 선택하여 사용할 수 있습니다. 이 포스트를 통해 Java 컬렉션 프레임워크의 인터페이스와 그들의 관계를 보다 쉽게 이해할 수 있기를 바랍니다.