반응형
# 컬렉션 프레임웍
- 컬렉션 (Collection) : 데이터 군을 저장하는 클랙스들을 표준화한 설계. (데이터 그룹)
- 프레임웍 : 표준화된 프로그래밍 방식을 의미.
- JDK 1.2 부터 컬렉션 프레임웍이 등장, 다양한 종류의 컬렉션 클래스가 추가되고 체게화 됨.
- 장점 : 컬렉션 프레임웍은 다수의 데이터를 다루는데 필요한 많은 다양한 클래스들을 제공, 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 사용법을 익히기 쉽고 재사용성이 높은 코드를 작성할 수 있다.
## 핵심 인터페이스
- 컬렉션 프레임웍에서 컬렉션 데이터 그룹을 크게 3가지로 타입이 존재한다고 인식, 3개의 인터페이스를 정의하였고 인터페이스 List 와 Set 의 공통 부분을 다시 뽑아 새로운 인터페이스인 Collection 을 추가로 정의.
- 컬렉션 프레임웍 핵심 인터페이스의 상속 계층도 상 List 와 Set 은 Collection 에 상속되지만, Map 인터페이스의 경우 다른 형태로 컬렉션을 다루기 때문에 같은 상속 계층도에 포함되지 못했다.
## 핵심 인터페이스의 특징 (List / Set / Map)
List
- 순서가 있는 데이터의 집합 (데이터 중복 허용)
- 구현클래스 : ArrayList / LinkedList / Stack Vector 등 ..
Set
- 순서를 유지하지 않는 데이터의 집합 (데이터 중복 X)
- 구현클래스 : HashSet / TreeSet 등 ..
Map
- 키(Key) 와 값(Value) 의 쌍으로 이루어진 데이터 집합, 순서를 유지하지 않는다. (키 중복 X / 값 중복 허용)
- 구현클래스 : HashMap / TreeMap / Hashtable / Properties 등 ..
## Collection 인터페이스
메서드 | 설명 |
boolean add (Object o) bollean addAll (Collection c) |
지정된 객체의 객체들을 Collection 에 추가 |
void clear () | Collection 의 모든 객체를 삭제 |
boolean contains (Object o) boolean contains (Collection c) |
지정된 객체들이 Collection 에 포함되어 있는지 확인 |
boolean equals (Object o) | 동일한 Collection 인지 비교 |
int hashCode () | Collection 의 hash code 반환 |
boolean isEmpty () | Collection 이 비어있는지 확인 |
iterator iterator () | Collection 의 iterator 를 반환 |
boolean remove (Object o) | 지정된 Collection 에 포함된 객체들을 삭제 |
boolean removeAll (Collection c) | 지정된 Collection 에 포함된 객체만 남기고 다른 객체들은 Collection 에서 삭제. (작업으로 Collection 에 변화가 있으면 true / 없으면 false 반환) |
int size () | Collection 에 저장된 객체의 개수 반환 |
Object [] toArray () | Collection 에 저장된 객체를 객체 배열(Object []) 로 반환 |
Object [] toArray (Object [] a) | 지정된 배열에 Collection 의 객체를 저장해서 반환 |
## List 인터페이스
- 중복 허용
- 저장 순서 유지
메서드 | 설명 |
void add (int index, Object element) boolean addAll (int index, Collection c) |
지정된 위치에 객체(들)를 추가 |
Object get(int index) | 지정된 위치에 있는 객체 반환 |
int indexOf (Object o) | 지정된 객체의 위치를 반환 (List의 첫 번째 요소부터 순방향으로 찾음) |
int lastIndexOf (Object o) | 지정된 객체의 위치를 반환 (List의 마지막 요소부터 역방향으로 찾음) |
ListIterator listIterator () ListIterator listIterator (int index) |
List 의 객체에 접근할 수 있는 ListIterator 를 반환 |
Object remove (int index) | 지정된 위치에 있는 객체를 삭제하고 삭제된 객체 반환 |
Object set (int index, Object element) | 지정된 위치에 객체를 저장 |
void sort (Comparator c) | 지정된 비교자(Comparator)로 List 정렬 |
List subList (int fromIndex, int toIndex) | 지정된 범위에 있는 객체 반환 |
## Set 인터페이스
- 중복 허용 X
- 저장 순서 유지 X
- 구현 클래스 : HashSet / TreeSet 등 ..
## Map 인터페이스
- 값만 중복 허용 (키는 중복 X)
- 기존에 저장된 데이터와 중복된 키와 값을 저장 시 기존의 값은 없어지고 마지막에 저장된 값이 남게 됨.
- 구현 클래스 : Hashtable / HashMap / LinkedHashMap / SortedMap / TreeMap 등 ..
메서드 | 설명 |
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.Entry 인터페이스
- Map 인터페이스의 내부 인터페이스 (inner interface)
- Map 에 저장되는 key-value 쌍을 다루기 위해 내부적으로 Entry 인터페이스 정의
메서드 | 설명 |
boolean equals (Object o) | 동일한 Entry 인지 비교 |
Object getKey () | Entry 의 key 객체 반환 |
Object getValue () | Entry 의 value 객체 반환 |
int hashCode () | Entry 의 해시코드 반환 |
Object setValue (Object value) | Entry 의 value 객체를 지정된 객체로 변경 |
반응형
'프로그래밍 > 자바, JDBC' 카테고리의 다른 글
기초부터 다시! 배열 (array) (0) | 2023.02.19 |
---|---|
switch 문의 제약조건 (0) | 2023.02.19 |
연산자와 피 연산자 (0) | 2021.09.27 |
형 변환(캐스팅, casting) (0) | 2021.09.27 |
자바에서 자주 발생하는 에러와 해결방법 (0) | 2021.09.23 |