객체 가변 배열을 지원해주는 클래스이다. 자바에서 배열은 고정 길이를 사용하고 있다. 즉, 한번 배열이 생성되면 배열의 길이를 늘이거나 줄일 수 없다. 사용자가 배열의 크기를 벗어나는 인덱스에 접근하면 에러가 발생한다. 그러므로 사용자는 프로그램에서 배열을 사용할 때 충분한 크기로 설정해야 한다.
배열의 한계를 극복하기 위해 자바에서는 Vector 클래스를 제공한다. Vector 클래스는 객체에 대한 참조(메모리주소)를 가지는 배열이기 때문에 객체들이 하나의 Vector 객체에 저장될 수 있으며 필요에 따라서 자동으로 늘어날 수 있다. Vector 클래스의 가변 배열이란 백터는 배열의 길이로 묵시적으로 10개의 요소를 가지고 생성된 후, 이 배열의 길이를 벗어나면 다시 기존의 배열 사이즈를 넘긴 새로운 참조 배열을 생성하여 주소값을 새로운 참조 배열에 다시 저장한다. 이런 방식으로 통해 가변 배열을 구현했다.
따라서 백터 클래스를 효율적으로 사용하기 위해서는 백터에 집어넣을 객체의 수를 미리 예측하여 사이즈를 조금더 넉넉하게 잡는것이 시스템 리소스를 적게 잡아 먹는 방법이다. 하지만 참조를 가지는 배열이기 때문에 기본 데이터형에 백터클래스를 사용할 수 없다.
Vactor 클래스 생성자)
Vector();
이 생성자는 묵시적으로 10개의 요소를 가진 Vector체를 생성한다.
Vector(int size);
size로 지정된 크기의 객체를 생성
Vector(int size, int incr);
size로 지정된 크기의 객체를 처음 생성한 후 객체가 다 차면 incr로 지정한 수 만큼 요소가 증가됨
주요 메소드)
void addElement(Object obj)
백터에 객체를 삽입합니다.
int capacity()
백터의 용량을 반환합니다.
Object elementAt(int index)
index 위치의 객체를 반환합니다.
boolean contains(Object obj)
객체가 백터의 요소에 포함되어 있으면 true, 아니면 false를 반환합니다.
int indexOf(Object obj)
현재의 백터에서 객체의 첫 번째 위치를 찾아 반환합니다. 객체가 없으면 -1을 반환합니다.
void insertElementAt(Object obj, int index)
백터의 index 위치에 객체를 삽입합니다.
boolean isEmpty()
백터가 비어 있으면, true, 아니면 false반환합니다.
void removeAllElement(Object obj)
백터 안의 모든 객체를 삭제합니다.
void removeElementAt(int index)
index위치의 객체를 삭제합니다.
void setSize(int size)
백터의 크기를 size로 설정. 초과되는 부분은 손실됩니다.
void size()
백터의 현재 크기를 반환 합니다.
사용예제
public class Data {
int x;
int y;
public Data(){}
public Data(int x, int y) {
this.x = x;
this.y = y;
}
}
import java.util.*;
public class Manager {
public static void main(String[] args) {
Vector<Data> vector =new Vector<Data>();
for(int i=0; i<5 ; i++) {
Data data = new Data(i, i+2);
vector.addElement(data);
}
Vector<Data> dateVector = new Vector<Data>();
dateVector = vectoy;
for(int i=0 ; i<v2.size(); i++) {
Data data = new Data();
data = dateVector.elementAt(i);
System.out.print(data.x);
System.out.println(data.y);
}
}
}
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
java.net.InetAddress - IP주소 (0) | 2009.01.23 |
---|---|
java.lang.reflect 패키지 - 클래스와 객체의 정보 취득 (0) | 2009.01.22 |
자바 예외 처리(Exception Handling) (0) | 2009.01.14 |
데이터베이스에 SQL문을 수행하고 결과 얻기 (0) | 2009.01.13 |
DriverManager 객체와 Connection 객체 (0) | 2009.01.13 |