[기본 개념] 6 | (1.1) 컬렉션 프레임웍의 인터페이스

728x90

[기본 개념] 6 | (1.1) 컬렉션 프레임웍의 인터페이스

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

2 ArrayList

3 LinkedList

4 Stack과 Queue

5 Iterator, Listlterator, Enumeration

6 Arrays

7 Comparator와 Comparable

8 HashSet

9 TreeSet

10 HashMap과 Hashtable

11 TreeMap

12 Properties

13 Collections

14 컬렉션 클래스 정리 & 요약

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

 인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스 Collection을 만들었다. 하지만 Map인터페이스는 다른 형태이기 때문에 포함되지 못했다.

 

List : 순서가 있는 데이터의 집합, 중복을 허용 

ex) 대기자 명단 

구현클래스 : ArrayList, LinkedList, Stack, Vector 등

Set : 순서가 없는 데이터의 집합, 중복을 금지

ex) 양의 정수 집합, 소수의 집합

구현클래스 : HashSet, TreeSet 등

Map : 키(key)와 값(value)의 쌍으로 이뤄진 데이터의 집합

순서가 없으며 키는 중복을 금지, 값은 중복을 허용

ex) 우편번호, 지역번호(전화번호)

구현클래스 : HashMap, TreeMap, Hashtable, Properties 등

 

Collection인터페이스

 List와 Set의 조상인 Collection인터페이스는 컬렉션 클래스에 저장된 데이터를 읽고, 추가하고 삭제하는 등 컬렉션을 다루는데 가장 기본적인 메서드들을 정의한다.

 

List인터페이스

중복을 허용하면서 저장 순서가 유지되는 컬렉션을 구현하는 데 사용된다.

 

  List
|
 
Vector
|
ArrayList

LinkedList

Stack  

 

Set인터페이스

중복을 허용하지 않고 저장순서가 유지되지 않는 컬렉션을 구현하는 데 사용된다.

 

  Set
|
HashSet

SortedSet
|
  TreeSet

 

Map인터페이스

키(key)와 값(value)을 하나의 쌍으로 묶어서 저장하는 컬렉션을 구현하는 데 사용된다. 키는 중복될 수 없지만 값은 중복을 허용한다.

 

  Map
|
 
Hashtable

HashMap
|
SortedMap
|
  LinkedHashMap TreeMap

 

 values( )에서는 반환타입이 Collection이고, keySet( )에서는 반환타입이 Set이다. 왜냐하면 값(value)은 중복을 허용하기 때문에 Collection타입으로 반환하고, 키(key)는 중복을 허용하지 않기 때문에 Set타입으로 반환한다.

 

Map.Entry인터페이스

 Map.Entry인터페이스는 Map인터페이스의 내부 인터페이스이다. 내부 클래스와 같이 인터페이스도 내부 인터페이스(inner interface)를 정의하는 것이 가능하다.

 

 Map에 저장되는 key-value쌍을 다루기 위해 내부적으로 인터페이스를 정의해 놓았다. Map인터페이스를 구현하는 클래스에서는 Map.Entry인터페이스도 함께 구현해야 한다.

 

 

 

 

출처 | Java의 정석 (남궁 성)

728x90