태그: add 멤버 메서드

Vector 클래스는 Collecion 인터페이스에 약속한 기능 외에도 추가적으로 제공하는 기능들이 있습니다. 내부적으로 Vector 클래스는 선형적인 저장소를 갖고 있으며 저장소의 크기를 확장할 수 있어 확장 배열이라고 볼 수 있습니다.

 

Vector 컬렉션에 자료를 보관할 때  add(Object ojb) 메서드를 이용하면 순차적으로 보관합니다. 그런데 Vector 클래스에서는 add(int index, Object obj) 메서드를 이용하면 원하는 위치에 자료를 보관할 수 있습니다. 만약 현재 A, B, C, D를 보관한 상태에서 add(2,F)를 호출하면 A, B, F, C, D 순으로 보관합니다. 즉 첫 번째 전달하는 인덱스 이후에 보관하고 있는 자료들을 한 칸 씩 뒤로 이동시키고 해당 위치에 자료를 보관하는 것입니다.

 

이를 이용하면 자료를 특정 키 순으로 정렬 상태를 유지하면서 보관할 수 있습니다. 이 때 필요한 것은 특정 키보다 크거나 같은 값을 처음으로 발견한 인덱스를 구하는 메서드입니다. 다음은 회원 관리 프로그램에서 입력한 회원 번호보다 크거나 같은 첫번째 회원 개체가 있는 인덱스를 구하는 메서드입니다. 만약 입력 인자로 받은 회원 번호보다 큰 값을 같은 회원 개체가 없으면 Vector의 size 메서드의 반환 값과 같은 인덱스를 반환합니다.

그리고 회원 추가 메서드에서는 이 메서드를 호출한 후에 반환한 index가 Vector의 size 메서드의 반환값과 다를 때 이미 등록한 번호의 회원 개체가 있는 인덱스인지 여부를 판별하는 작업을 하면 보다 신뢰성이 강한 프로그램을 작성할 수 있습니다.

 

다음은 Vector에 번호 순으로 회원 개체를 보관하는 회원 관리 프로그램 코드입니다.

▷ 소스 3.5 회원 관리 프로그램 (Vector에 번호 순으로 회원 보관)

▷ 소스 3.5 실행 결과