자바 자료구조: 핵심 클래스와 컬렉션 프레임워크 탐구
자바 유틸리티 패키지에서 제공하는 자료구조들은 매우 강력하며 광범위한 기능을 수행합니다. 이 자료구조들은 다음 인터페이스와 클래들로 구성됩니다.
- Enumeration
- BitSet
- Vector
- Stack
- Dictionary
- Hashtable
- Properties
이 모든 클래스들은 이제 레거시(legacy)이며, 자바 2에서 새로운 프레임워크인 컬렉션 프레임워크(Collections Framework)를 도입했는데, 이는 다음 장에서 다룹니다.
Enumeration
Enumeration 인터페이스는 그 자체로는 자료구조가 아니지만, 다른 자료구조들의 맥락에서 매우 중요합니다. Enumeration 인터페이스는 자료구조에서 연속적인 요소들을 검색하는 수단을 정의합니다.
예를 들어, Enumeration은 여러 요소를 포함하는 자료구조에서 다음 요소를 얻는 데 사용되는 nextElement 메서드를 정의합니다.
이 인터페이스에 대한 자세한 내용은 The Enumeration을 확인하세요.
BitSet
BitSet 클래스는 개별적으로 설정되고 해제될 수 있는 비트 또는 플래그 그룹을 구현합니다.
이 클래스는 불리언 값들의 집합을 추적해야 하는 경우에 매우 유용합니다. 각 값에 비트를 할당하고 적절히 설정하거나 해제하면 됩니다.
이 클래스에 대한 자세한 내용은 The BitSet을 확인하세요.
Vector
Vector 클래스는 전통적인 자바 배열과 유사하지만, 새 요소를 수용하기 위해 필요에 따라 크기가 늘어날 수 있습니다.
배열처럼 Vector 객체의 요소들도 벡터 내 인덱스를 통해 접근할 수 있습니다.
Vector 클래스 사용의 장점은 생성 시 특정 크기로 설정할 필요가 없다는 점입니다. 필요할 때 자동으로 늘어나고 줄어듭니다.
이 클래스에 대한 자세한 내용은 The Vector를 확인하세요.
Stack
Stack 클래스는 요소들의 후입선출(LIFO) 스택을 구현합니다.
스택을 문자 그대로 객체들의 수직 스택으로 생각할 수 있습니다. 새 요소를 추가하면 다른 요소들 위에 쌓입니다.
스택에서 요소를 꺼내면 맨 위에서 나옵니다. 즉, 스택에 마지막으로 추가된 요소가 가장 먼저 나옵니다.
이 클래스에 대한 자세한 내용은 The Stack을 확인하세요.
Dictionary
Dictionary 클래스는 키를 값에 매핑하는 자료구조를 정의하는 추상 클래스입니다.
이는 정수 인덱스 대신 특정 키를 통해 데이터에 접근하고 싶은 경우에 유용합니다.
Dictionary 클래스가 추상적이므로, 키-매핑 자료구조의 골격만 제공할 뿐 구체적인 구현은 제공하지 않습니다.
이 클래스에 대한 자세한 내용은 The Dictionary를 확인하세요.
Hashtable
Hashtable 클래스는 사용자 정의 키 구조에 기반하여 데이터를 구성하는 수단을 제공합니다.
예를 들어, 주소록 해시테이블에서 사람 이름 대신 우편번호 같은 키를 기준으로 데이터를 저장하고 정렬할 수 있습니다.
해시테이블에서 키의 구체적인 의미는 해시테이블의 용도와 포함된 데이터에 전적으로 의존합니다.
이 클래스에 대한 자세한 내용은 The Hashtable을 확인하세요.
Properties
Properties는 Hashtable의 하위 클래스입니다. 키가 String이고 값도 String인 값들의 리스트를 유지하는 데 사용됩니다.
Properties 클래스는 많은 다른 자바 클래스들에 의해 사용됩니다. 예를 들어, 환경 값들을 얻기 위해 System.getProperties()를 호출하면 반환되는 객체 타입이 Properties입니다.
이 클래스에 대한 자세한 내용은 The Properties를 확인하세요.