6.4.4 Vector 예제 I
Vector 클래스를 이용하는 방법에 대해서 알아보기로 하죠. 먼저 Vector 클래스의 객체를 생성한 후 다음과 같이 객체를 삽입하면 됩니다.
▣ Vector의 생성과 데이터의 삽입
◈ Vector v = new Vector();
◈ v.addElement(new String("망아지"));
◈ v.addElement(new String("송아지"));
◈ v.addElement(new String("강아지"));
◈ v.addElement(new String("병아리"));
▣ Vector 클래스의 특징
◈ 벡터는 순서의 개념을 가지고 있는 저장공간이다.
Vector v에는 4개의 객체가 삽입되어 있습니다. Vector는 순서를 가지고 있으며, 이 순서는 삽입된 순서를 의미합니다. Vector v에 삽입된 객체는 다음과 같은 순서로 되어 있습니다.
벡터에 데이터가 삽입되는 순서【chap06\vectordataindex.bmp】
Vector에 존재하는 객체를 추출하기 위해서는 다음과 같이 elementAt()을 사용하면 됩니다.
▣ 인덱스를 이용한 Vector의 데이터 추출
◈ String temp0 = (String)v.elementAt(0);
◈ String temp1 = (String)v.elementAt(1);
◈ String temp2 = (String)v.elementAt(2);
◈ String temp3 = (String)v.elementAt(3);
elementAt()은 인덱스에 해당하는 Vector 내부의 객체를 Object형으로 리턴합니다. 이 때 리턴된 객체를 원래의 형으로 복원해서 사용하면 됩니다. 이러한 과정을 프로그램으로 만들어 보면 다음과 같습니다.
『chap06\VectorMain.java』
ⓙ───────────────────────────────────────
/**
Vector 클래스의 기본적인 사용
**/
import java.util.Vector;
public class VectorMain {
public static void main(String[] args) {
Vector v = new Vector(); //Vector 객체 생성
System.out.println("Vector 생성 직후의 size : " + v.size());
//1. 벡터에 데이터 4개 삽입
v.addElement(new String("망아지"));
v.addElement(new String("송아지"));
v.addElement(new String("강아지"));
v.addElement(new String("병아리"));
System.out.println("Vector에 데이터 삽입 후의 size : " + v.size());
//2. 벡터의 요소 출력하기
for(int i=0; i< v.size(); i++){
//인덱스를 이용한 데이터 추출(다운캐스팅은 필수적)
String temp = (String)v.elementAt(i);
System.out.println("Vector v의 " + i + "번째 :" + temp);
}
} //end of main
} //end of VectorMain class
//㉶--------------------------------------------㉳
/***
C:\javasrc\chap06>javac VectorMain.java
C:\javasrc\chap06>java VectorMain
Vector 생성 직후의 size : 0
Vector에 데이터 삽입 후의 size : 4
Vector v의 0번째 :망아지
Vector v의 1번째 :송아지
Vector v의 2번째 :강아지
Vector v의 3번째 :병아리
***/
───────────────────────────────────────ⓑ
일단 Vector 클래스의 객체를 생성한 후 벡터 내에 존재하는 객체의 수를 출력하기 위해서 size()를 이용하고 있습니다.
▣ Vector 객체의 생성
◈ Vector v = new Vector();
◈ System.out.println("Vector 생성 직후의 size : " + v.size());
현재는 Vector v에 삽입된 객체가 없기 때문에 크기는 0이 됩니다. 그리고 Vector v에 String 객체 4개를 삽입하고 있습니다. 데이터를 삽입할 때는 다음과 같이 addElement(Object obj)를 이용하면 됩니다.
▣ Vector v에 데이터 삽입
◈ v.addElement(new String("망아지"));
◈ v.addElement(new String("송아지"));
◈ v.addElement(new String("강아지"));
◈ v.addElement(new String("병아리"));
삽입된 데이터의 내용을 출력하기 위해서 다음과 같이 for문을 이용해서 전체 데이터에 접근하고 있습니다. 이 때 데이터에 접근하는 순서는 데이터가 삽입된 순서입니다.
▣ Vector v에서 인덱스를 이용한 데이터의 추출
◈ for(int i=0; i< v.size(); i++){
◈ String temp = (String)v.elementAt(i); //다운캐스팅은 필수
◈ }
벡터 내에 있는 객체의 수는 size()를 이용해서 얻을 수 있으며, 그 수만큼 elementAt() 메서드를 이용해서 인덱스 순으로 차례대로 데이터를 추출할 수 있습니다. 그리고 추출된 데이터는 Object형이기 때문에 원래의 형으로 형변환을 해주고 있습니다.
위의 예에서 Vector v를 처음 생성했을 때 객체의 수는 0입니다. 그리고 데이터를 4개 삽입했을 때의 개수는 4입니다. 이 단순한 소스는 Vector가 무엇을 하는 것인지 정확하게 보여주고 있습니다.