[Java 활용] 3.4.2 Vector를 이용하여 인덱스로 관리하기

Vector 클래스를 사용할 때 확장 가능한 특징을 반드시 사용할 필요는 없습니다. Vector 클래스는 내부적인 저장소는 선형적인 형태이므로 특정 인덱스에 보관할 개체가 정해져 있다면 빠르게 추가, 변경, 삭제 등을 할 수 있습니다.

 

만약 보관할 자료에 일련 번호가 있고 최대 일련 번호가 정해져 있다면 인덱스로 관리하는 것이 처리 속도를 높이는 데 기여합니다. 먼저 Vector 컬렉션을 생성할 때 최대 일련 번호를 입력 인자를 전달하여 생성합니다. 그리고 반복문으로 최대 일련 번호 개수 만큼의 null을 추가합니다. 이는 이 후 해당 인덱스에 유효한 개체를 보관한 것인지 판별하는 주요한 기준으로 사용합니다.

추가할 때 유효한 번호인지 확인하고 맞다면 해당 인덱스(번호 -1)에 이미 유효한 자료가 있는지 확인하여 없을 때만 생성하여 추가합니다. 이 때 사용할 메서드는 set(인덱스, 보관할 개체) 메서드입니다.

삭제할 때도 대부분 비슷한 과정을 거칩니다. 만약 삭제할 인덱스에 유효한 개체가 있을 때 set(인덱스, null)을 호출하여 디폴트 값인 null로 변경합니다.

그리고 이처럼 관리할 때 주의할 점은 전체 목록을 확인할 때입니다. 여기에서는 최대 번호 개수의 공간을 미리 만들어 놓고 null로 초기한 후에 자료를 보관할 때 유효한 개체를 생성하여 교환(set)하는 형태입니다. 따라서 각 인덱스에 있는 값이 null인지 확인하여 그렇지 않을 때만 출력합니다.

 

다음은 Vector를 이용하여 인덱스로 관리하는 회원 관리 프로그램 예제 코드입니다.

▷ 소스 3.6 회원 관리 프로그램 (Vector를 이용하여 인덱스로 관리하기)

▷ 소스 3.6 실행 결과