티스토리 뷰

### 컬렉션 프레임웍
데이터 군을 저장하는 클래스들을 표준화한 설계
데이터 군을 다루고 표현하기 위한 단일화된 구조

### 컬렉션
다수의 데이터, 즉 데이터 그룹

### 프레임웍
표준화된 프로그래밍 방식



### 컬렉션 프레임웍의 핵심 인터페이스
컬렉션 프레임웍에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의(List, Set, Map)
인터페이스 List와 Set의 공통된 부분을 다시 뽑아서 새로운 인터페이스인 Collection을 추가로 정의
즉, 컬렉션 프레임웍의 모든 컬렉션 클래스들은 List, Set, Map 중의 하나를 구현하고 있다.
1. List: 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다.
구현클래스: ArrayList, LinkedList, Stack, Vector 등

2. Set: 순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않는다.
구현클래스: HashSet, TreeSet 등

3. Map: 키와 값의 쌍으로 이루어진 데이터의 집합으로 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다.
구현클래스: HashMap, TreeMap, Hashtable, Properties 등  

 

 

### ArrayList 

list2에서 list1에 포함된 객체들을 삭제하는 예제코드 

ArrayList list1 = new ArrayList(10);  
...  
ArrayList list2 = new ArrayList(list1.subList(1, 4));  
for(int i = list2.size()-1; i >= 0; i--) {  
    if(list1.contains(list2.get(i))) {  
        list2.remove(i);  
    }  
}




### 컬렉션 클래스 정리 & 요약
1. ArrayList
배열기반
데이터의 추가와 삭제에 불리
순차적인 추가와 삭제는 제일 빠름
임의의 요소에 대한 접근성이 뛰어남

2. LinkedList
연결기반
데이터의 추가와 삭제에 유리
임의의 요소에 대한 접근성이 좋지 않다

3. HashMap
배열과 연결이 결합된 형태
추가, 삭제, 검색, 접근성이 모두 뛰어남
검색에는 최고 성능

4. TreeMap
연결기반
정렬과 검색(특히 범위검색)에 적합
검색성능은 HashMap보다 떨어짐

5. Stack
Vector를 상속받아 구현

6. Queue
LinkedList가 Queue인터페이스를 구현

7. Properties
Hashtable을 상속받아 구현

8. HashSet
HashMap을 이용해서 구현

9. TreeSet
TreeMap을 이용해서 구현

10. LinkedHashMap, LinkedHashSet
HashMap과 HashSet에 저장순서유지기능을 추가

 

 

참고: [Java의 정석 3rd Edition(남궁 성 지음)]

'java' 카테고리의 다른 글

자바 vector, pair, 정렬  (0) 2022.05.14
네트워킹(Networking)  (0) 2022.05.08
예외처리(exception handling)  (0) 2022.05.01
싱글톤패턴  (0) 2022.04.26
메모리는 어떻게 할당하는가  (0) 2022.01.02
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday