컴퓨터 공부/JAVA

Vector-벡터

나정_ 2012. 4. 5. 14:44

Vector 클래스

 

자바에서의 배열(Array)은 고정 길이를 사용하고 있다. 즉 배열이 한번 생성되면 배열의 길이를 늘이거나 줄일 수 없다. 사용자가 배열을 사용할 때 배열의 크기를 벗어나는 인덱스에 접근하려면 에러가 발생한다. 그러므로 사용자는 프로그램에서 배열을 사용할 때 충분한 크기로 설정하여야 한다.

 

Vector 클래스가변 길이의 배열을 제공한다.

 

Vector 클래스는 객체에 대한 참조(주소)를 가지는 배열이기 때문에 객체들이 하나의 Vector에 저장될 수 있으며 필요에 따라 자동으로 늘어나고 줄어들 수 있다.

 

 

기본적은 생성자는 다음과 같다

Vector();           /* 이 생성자는 묵시적으로 10개의 요소를 가진 Vector체를 생성한다. */

Vector(int size);         /* size로 지정된 크기의 객체를 생성*/

Vector(int size, int incr);  /* size로 지정된 크기의 객체를 처음 생성한 후 객체가 다 차면 incr로 지정한 수 만큼 요소가 증가됨*/

 

 

주요 메소드

 

void addElement(Object obj)  -  백터에 obj요소를 삽입

int capacity()  -  백터의 용량을 반환

Object elementAt(int index)  -  index 위치의 요소를 반환

boolean contains(Object obj)  -  obj가 백터의 요소에 포함되어 있으면 true, 아니면 false를 반환

int indexOf(Object obj)  -  현재의 백터에서 obj의 첫 번째 위치를 찾아 반환. obj가 없으면 -1을 반환

void inserElementAt(Object obj, int index)  -   백터의 index 위치에 obj를 삽입

boolean isEmpty()  -  백터가 비어 있으면, true, 아니면 false반환

void removeAllElement(Object obj)  -  백터의 모든 요소를 삭제

void removeElementAt(int index)  -  index위치의 요소를 삭제

void setSize(int size)  -  백터의 크기를 size로 설정. 초과되는 부분은 손실

void size()  -  백터의 현재 크기를 반환 

 

 

 

Enumeration 인터페이스

 

Enumeration 인터페이스는 객체들의 집합에서 각각의 객체들을 한순간에 하나씩 처리할 수 있는 메소드를 제공한다. 

boolean hasMoreElements()  -  요소가 있으면 true, 없으면 false를 반환

Object nextElement()  -  다음 요소를 반환 

 

 

사용예제

------------------------------------------------ 객 체 클 래 스 -------------------------------------------

package co.kim.test;

 

public class Data {
 int x;
 int y;
 
 public Data(){}
 
 public Data(int x, int y){
  this.x = x;
  this.y = y;
 }

}

------------------------------------------ 백 터 사 용 클 래 스 -------------------------------------------

package co.kim.test;

import! java.util.*;

 

public class Manager {
 public static void main(String[] args) {
  Vector<Data> v =new Vector<Data>();
  
  for(int i=0; i<5 ; i++){
   Data data = new Data(i, i+2);
   v.addElement(data);
  }
  
  Vector<Data> v2 = new Vector<Data>();
  v2 = v;
  
  for(int i=0 ; i<v2.size(); i++){
   Data data = new Data();
   data = v2.elementAt(i);
   
   System.out.print(data.x);
   System.out.println(data.y);
  }
 }
}