Set 인터페이스
- HashSet : 데이터를 해쉬 테이블에 담는 클래스로 순서 없이 저장된다.
- TreeSet : red-black 트리에 저장되며 값에 따라 순서가 정해진다. HashSet보다 느리지만 데이터를 담는 동시에 정렬할 때 유용하다.
- LinkedHashSet : 해쉬 테이블에 데이터를 담는데 저장된 순서에 따라 순서가 결정된다.
데이터 속도는 비슷하지만 데이터를 꺼낼 때 속도는 TreeSet이 가장 느리고 LinkedHashSet이 가장 빠르다.
List 인터페이스
- Vector : 크기를 객체 생성시에 지정할 필요가 없는 배열 클래스다.
- ArraryList : Vector와 비슷하지만, 동기화 처리가 되어 있지 않다.
- LinkedList : ArrayList와 같지만 Queue 인터페이스를 구현했기 때문에 FIFO 큐 작업을 한다.
Vector가 가장 빠르며 나머지 두개는 비슷하다.
Map 인터페이스
- HashMap : 데이터를 Hash Table에 담는 클래스다. Hashtable과 다른 점은 NULL값을 허용한다는 것과 동기화가 되어있지 않다는 것이다.
- Hashtable : 데이터를 Hash Table에 담는 클래스다. 내부에서 관리하는 해쉬 테이블 객체가 동기화되어 있으므로 동기화가 필요한 부분에서는 이 클래스를 사용하기 바란다.
- TreeMap : red-black 트리에 데이터를 담는다. TreeSet과 다른 점은 키에 순서가 정해진다는 것이다.
- LinkedHashMap : HashMap과 거의 동일하며 Double Linked List 방식을 사용하여 데이터를 담는다는 점만 다르다.
TreeMap 클래스가 가장 느리며 나머지 3개는 비슷한 속도를 보인다.
속도를 관련해서 왠만해선 속도 차이가 별로 없다.
'개발 이야기 > 유용한 Coding' 카테고리의 다른 글
자바관련 잡다한 이야기 - 객체의 행동 (0) | 2008.05.01 |
---|---|
자바관련 잡다한 이야기 - 클래스와 객체 핵심정리 (0) | 2008.05.01 |
자바관련 잡다한 이야기 - 원시 변수와 레퍼런스 (0) | 2008.05.01 |
수행시간 측정 StopWatch Class (0) | 2008.04.28 |
StringBuffer와 StringBuilder 클래스를 아시나요? (0) | 2008.04.26 |