본문 바로가기

Java

[Java] 컬렉션 프레임워크

컬렉션 프레임워크

데이터 군을 저장하는 클래스들을 표준화한 설계

컬렉션 프레임워크에는 List, Set, Map 인터페이스가 존재한다.

이중 List와 Set의 공통된 부분을 뽑아서 새로운 인터페이스인 Collection을 추가로 정의하였다.






 인터페이스

 특징 

List 

 순서가 있는 데이터의 집합. 데이터의 중복 허용. 

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

 Set

 순서가 없는 데이터의 집합. 데이터의 중복 허용하지 않음. 

 구현 클래스 : HashSet, TreeSet

 Map

 Key와 Value의 쌍으로 이루어진 데이터의 집합.

 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용함. 

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

Vector, Hashtable과 같은 기존의 컬렉션 클래스들은 호환을 위해, 설계를 변경해서 남겨두었지만, 가능하면 사용하지 않는 것이 좋다.

그 대신 새로 추가된 ArrayList, HashMap을 사용하는 것이 좋다.





List 인터페이스

"중복 허용"과 "저장 순서 유지"



 메서드

설명 

 void add(int index, Object element)

 boolean addAll(int index, Collection c) 

 지정된 위치(index)에 객체(element) 또는 컬렉션에 포함된 객체들을 추가한다.

 Object get(int index) 

 지정된 위치(index)에 있는 객체를 반환한다. 

 int indexOf(Object o)

 지정된 객체의 위치(index)를 반환한다.

 (List의 첫 번째 요소부터 순방향으로 찾는다.) 

 int lastIndexOf(Object o)

 지정된 객체의 위치(index)를 반환한다.

 (List의 마지막 요소부터 역방향으로 찾는다.) 

 ListIterator listIterator() 

 ListIterator listIterator(int index)

 List의 객체에 접근할 수 있는 ListIterator를 반환한다. 

 Object remove(int index) 

 지정된 위치(index)에 있는 객체를 삭제하고 삭제된 객체를 반환한다. 

 Object set(int index, Object element) 

 지정된 위치(index)에 객체(element)를 지정한다. 

 void sort(Comparator c) 

 지정된 비교자(comparator)로 List를 정렬한다. 

 List subList(int fromIndex, int toIndex) 

 지정된 범위(fromIndex부터 toIndex)에 있는 객체를 반환한다. 




Set 인터페이스

"중복 허용X"와 "저장 순서 유지X"




Map 인터페이스

"Key-Value"


메서드 

설명 

 void clear() 

 Map의 모든 객체 삭제 

 boolean containsKey(Object key) 

 지정된 key 객체와 일치하는 Map의 key 객체가 있는지 확인 

 boolean containsValue(Object value) 

 지정된 value 객체와 일치하는 Map의 value 객체가 있는지 확인 

 Set entrySet() 

 Map에 저장되어 있는 key-value 쌍을 Map.Entry 타입의 객체로 저장한 Set으로 반환

 boolean equals(Object o)

 동일한 Map인지 비교 

 Object get(Object key)

 지정된 key 객체에 대응하는 value 객체를 찾아서 반환 

 int hashCode() 

 해시코드 반환 

 boolean isEmpty() 

 Map이 비어있는지 확인 

 Set keySet()

 Map에 저장된 모든 key 객체 반환 

 Object put(Object key, Object value) 

 Map에 value 객체를 key 객체에 연결하여 저장 

 void putAll(Map t) 

 지정된 Map의 모든 key-value 쌍을 추가 

 Object remove(Object key) 

 지정한 key 객체와 일치하는 key-value 객체 삭제 

 int size() 

 Map에 저장된 key-value 쌍의 개수 반환 

 Collection values() 

 Map에 저장된 모든 value 객체 반환 

Map 인터페이스에서 값은 중복이 허용되기 때문에 value()의 반환타입은 Collection이고, 

키는 중복을 허용하지 않기 때문에 keySet()의 반환타입은 Set이다.











'Java' 카테고리의 다른 글

[Java] 예외처리  (0) 2019.01.16
[Java] 추상클래스와 인터페이스  (0) 2019.01.03
[Java] Vector 클래스  (0) 2019.01.03
[Java] 다형성  (0) 2019.01.01
[Java] 제어자  (0) 2019.01.01