티스토리 뷰
Collection 인터페이스 구성
인터페이스 | Hash Table | Resizable Array | Balanced Tree | Linked List | List+Hash |
---|---|---|---|---|---|
Set |
HashSet |
TreeSet |
LinkedHashSet |
||
List |
ArrayList |
LinkedList |
|||
Deque |
ArrayDeque |
LinkedList |
|||
Map |
HashMap |
TreeMap |
LinkedHashMap |
일반적으로 사용되는 클래스
- 데이터 읽기/쓰기 등 평균 응답시간이 가장 좋다
- 필요한 목적에 부합하는 클래스를 선택해서 사용하는 것이 바람직하다.
(TreeSet은 느리지만, 데이터를 저장하면서 정렬하기때문에 순서에 따라 탐색할때 유용하다)
인터페이스 |
클래스 |
---|---|
Set |
HashSet |
List |
ArrayList |
Map |
HashMap |
Queue |
LinkedList |
ArrayList
* 배열을 대체할 수 있는 콜렉션 객체 * 동적으로 크기가 확장된다. * 인덱스를 활용 가능
HashMap
* key와 value 쌍을 저장 * key를 이용해서 value를 검색 * key는 중복될 수 없음
Set
* 값을 저장 * 값이 중복되지 않음 * Iterator 사용 가능
Collection 관련 클래스의 동기화
HashSet, TreeSet, LinkedHashSet, ArrayList, LinkedList, HashMap, TreeMap, LinkedHashMap은 동기화(synchronzied)되지 않는 클래스이다.
(Vector, Hashtable은 동기화되어 있는 클래스)
Collections 클래스에서 지원하는 synchronized로 시작하는 메서드들을 사용하면 동기화가 가능하다
Set s = Collections.synchronizedSet(new HashSet(...));
List list = Collections.synchronizedList(new ArrayList(...));
List list = Collections.synchronizedList(new LinkedList(...));
Map m = Collections.synchronizedMap(new HashMap(...));
'Programming > .java' 카테고리의 다른 글
스프링 프레임워크에 이르기까지 <2> MVC (0) | 2017.10.02 |
---|---|
스프링 프레임워크에 이르기까지 <1> All-in-one (0) | 2017.09.23 |
[Java]String vs StringBuffer vs StringBuilder (0) | 2017.08.25 |
[Java][Command]자주 쓰는 단축키 (0) | 2017.08.01 |
[Java][Command]자주 쓰는 문자열, 배열 함수 (0) | 2017.07.18 |
댓글