Programming/Java

[Java] 컬렉션 프레임워크와 계층 구조

kmindev 2023. 11. 3. 10:57

 

남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다.

 

1. 컬렉션 프레임웍의 핵심 인터페이스

  • 핵심 인터페이스로는 List, Set, Map이 있다.
  • List, Set은 공통된 부분이 많아 공통 부분을 인터페이스(Collection)으로 정의했다.
  • Map은 List, Set과 달리 key-value 구조이기 때문에 별도의 인터페이스로 정의했다.

 

a. List

  • 순서를 유지하고, 데이터 중복을 허용한다.
  • 구현클래스: ArrayList, Vector, LinkedList, Stack 등

 

b. Set

  • 순서를 유지하지 않고, 데이터 중복을 허용하지 않는다.
    • 순서를 유지하고 싶으면 LikedHashSet 사용
  • 구현클래스: HashSet, TreeSet 등

 

c. Map

  • Key, Value 구조의 데이터 집합
  • 순서는 유지되지 않는다.
    • 순서를 유지 하고 싶으면 LikedHashMap
  • key는 중복X, value는 중복O
  • 구현클래스: HashMap, TreeMap, HashTable, Properties 등

Map 인터페이스 내부 Entry 인테페이스

  • key-value 구조를 다루기 위해 내부 인터페이스(Entry)를 정의했다.
public interfac Map<K, V> {
		// ...

		public static interface Entry {
				Object getKey();
				Object getValue();
				Object setValue(Object value);
				boolean equals(Object o);
				int hashCode();
				// ...
		}
}