본문 바로가기
개발/Java

[Java] 정리해서 다시보자 #2 - Set, Map Collection

by onethejay 2022. 12. 19.
728x90

Set 컬렉션 클래스

모든 Set 컬렉션 클래스는 다음의 특징을 가집니다.

  • 요소의 저장 순서를 유지하지 않습니다.
  • 같은 요소의 중복을 허용하지 않습니다.

대표적인 클래스는 다음과 같습니다.

  1. HashSet<E>
  2. TreeSet<E>

HashSet

HashSet 클래스는 Set 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나입니다.
해시 알고리즘을 사용하여 검색속도가 매우 빠르며 내부적으로 HashMap 인스턴스를 이용하여 요소를 저장합니다.
HashSet 클래스는 요소를 순서에 상관없이 저장하며 중복된 값은 저장하지 않습니다.
만약, 요소의 저장 순서를 유지해야 한다면 LinkedHashSet 클래스를 사용하면 됩니다.

TreeSet

TreeSet 클래스는 데이터가 정렬된 상태로 저장되는 이진 검색 트리(Binary Search Tree) 형태로 요소를 저장합니다.
이진 검색 트리는 데이터를 추가하거나 제거하는 등의 기본 동작 시간이 매우 빠릅니다.
TreeSet 클래스 역시 요소를 순서에 상관없이 저장하고 중복된 값은 저장하지 않습니다.

Map 컬렉션 클래스

Map 컬렉션 클래스들은 키와 값을 하나의 쌍으로 저장하는 방식(Key - Value)을 사용합니다.

모든 Map 컬렉션 클래스는 다음의 특징을 가집니다.

  • 요소의 저장 순서를 유지하지 않습니다.
  • 키는 중복을 허용하지 않지만, 값의 중복은 허용합니다.

대표적인 클래스는 다음과 같습니다.

  1. HashMap<K, V>
  2. TreeMap<K, V>

HashMap 클래스

HashMap 클래스는 Map 컬렉션 클래스에서 가장 많이 사용되는 클래스 중 하나입니다.
해시 알고리즘을 사용하여 검색 속도가 매우 빠릅니다.
중복된 키로는 값을 저장할 수 없으나 중복된 값을 다른 키로 저장할 수 있습니다.

TreeMap 클래스

TreeMap 클래스는 데이터를 이진 검색 트리(Binary Search Tree) 형태로 저장합니다.
이진 검색 트리는 데이터를 추가하거나 제거하는 등의 기본 동작 시간이 매우 빠릅니다.
HashMap과 마찬가지로 중복된 키로는 값을 저장할 수 없으나 중복된 값을 다른 키로 저장할 수 있습니다.

Iterator

자바 컬렉션 프레임워크는 컬렉션에 저장된 요소를 읽어오는 방법을 Iterator 인터페이스로 표준화하고 있습니다.
List와 Set 인터페이스에서 Iterator 메서드를 사용할 수 있습니다.

메서드 설명
boolean hasNext() 해당 이터레이션(iteration)이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함.
E next() 이터레이션(iteration)의 다음 요소를 반환함.
default void remove() 해당 반복자로 반환되는 마지막 요소를 현재 컬렉션에서 제거함. (선택적 기능)

참고

http://www.tcpschool.com/java/java_collectionFramework_concept

728x90

댓글