Computer/JAVA

[ 벡터 Vector ]

Triton 2008. 11. 15. 12:51


가변적, 이종간 객체 배열
크기를 알수 없는 데이타의 처리에 유용하다.

0. 자주 사용되는 메소드
-------------------------------------------------------------

Vector ( ):  초기용량이 10인 빈벡터의 생성. 초과시마다 두배 증가.

add ( Object object ):  주어진 객체를 추가합니다.   


Object get ( int index ): 주어진 위치에 있는 객체를 얻습니다.      


int size (): 벡터의 크기를 얻습니다.  


trimToSize ():  들어있는 데이타 크기 만큼으로 용량을 감소 시킨다.


void set ( int index, Object object ): 주어진 위치에 값을 덮어써 넣는다.  


void insertElementAt ( Object object, int index ): 주어진 위치에 객체를 삽입합니다. 밀려 늘어난다.


void removeElementAt ( int index ): 주어진 위치에 있는 객체를 제거합니다. 당겨 줄어든다.


Object [] toArray ( ): 배열로 전환한다.

-------------------------------------------------------------

1. 사용법
------------------------------------------------------------------------

Vector vec = new Vector ( );//기본 용량 10개, 초과시 두배씩 증가


Vector vec = new Vector ( 100 );//초기 용량 1000개, 초과시 100개씩 증가


Vector vec = new Vector ( 100, 10 );//초기 용량 100개, 초과시 10개씩 증가

vec.add ( "안녕" ); //객체 추가


vec.add ( 2, "안녕" ); //3번째 위치에 객체 추가하고 뒤로 한칸씩 밀린다.


vec.addElement ( "안녕" ); 객체 추가

Object object = (Object) vec.get ( 2 ); //3번째 객체 불러오기


Object object = (Object) vec.elementAt ( 2 ); //3번째 객체 불러오기


List list = vec.subList ( 2, 5 ); //1부터 4까지의 요소 추출한다.

vec.set ( 2, "안녕" ); //3뻔째 위치의 객체를 주어진 객체로 대체한다.

int max = vec.capacity ( ); //용량 구하기(데이타를 넣을 수 있는 갯수)


int size = vec.size ( ); //크기 구하기(데이타가 들어있는 갯수)


int free = vec.capacity ( ) - vec.size ( ); //비어 있는 용량 구하기


vec.ensureCapacity ( 150 ); //용량이 150보다 작으면 150으로 증가, 아니면 무변화.


vec.setSize ( 50 ); //크기를 50으로 설정. 나머지는 null로 채워진다.


vec.trimToSize ( ); //용량을 현재 크기에 맞도록 압축한다.


vec.remove ( 2 ); //3번째 객체를 삭제한다.


vec.removeAll ( vec.subList ( 2, 5 ) ); //1부터 4까지의 요소를 삭제한다.


vec.clear ( ); //모든 요소를 삭제한다.

//불러오기 1 (컬렉션)
Iterator iter = vec.iterator ( );


while ( iter.hasNext ( ) )
  System.out.println ( (String) iter.next ( ) );

//불러오기 2 (벡터 사이즈)
for ( int i = 0; i < vec.size ( ); i++ )
  System.out.println ( (String) vec.get ( i ) );

//불러오기 3 (배열)
Object [] aObject = vData.toArray ( );
for ( int i = 0; i < aObject.length; i++ )
  System.out.println ( (String) aObject [i] );

//불러오기 4 (배열)
String [] aObject = new String [ vec.size ( ) ];
aObject = vec.toArray ( aObject );
for ( int i = 0; i < aObject.length; i++ )
  System.out.println ( (String) aObject [i] );


------------------------------------------------------------------------

2. 예제
-------------------------------------------------------------
import java.util.*;

   Vector vec = new Vector ();

     vec.add (new Integer (1));
     vec.add (new Integer (2));
     vec.add (new Integer (3));

   int sum = 0;
        for ( int i = 0; i < vec.size (); i++ )
            sum += ((Integer) vec.get (i)).intValue ();
   
   int value = sum;   // 6
-------------------------------------------------------------
벡터에 들어 갈 때 object로 자동변환 되어 들어가므로 빼낼 때는 적합한 형으로 변환 시켜주어야 한다.

-------------------------------------------------------------
private void Body(HttpServletRequest req, HttpServletResponse res) {
  String code = "";
  String intro = "";
  int type = 0;
  
  Vector v = Detail(req);
  Iterator i = v.iterator();

  Integer a = (Integer)i.next();
  type = a.intValue();
  code = (String)i.next();
  intro = (String)i.next();
}     

private Vector Detail(HttpServletRequest req) {
  int type = 0;
  String code = "";
  String intro = "";
  
  //--------중간생략

  Vector v = new Vector();
  v.addElement(new Integer(type));
  v.addElement(new String(code));
  v.addElement(new String(intro));
  return v;
}
-------------------------------------------------------------

3. 클래스/메소드
-------------------------------------------------------------


void add(int index, Object element): 객체를 주어진 위치에 추가합니다.  


boolean add(Object o): 객체를 추가합니다.   


boolean addAll(Collection c): 주어진 콜렉션에 있는 모든 객체를 추가합니다.


boolean addAll(int index, Collection c): 주어진 콜렉션에 있는 모든 객체를 주어진 위치에 추가합니다.

void addElement(Object obj): 주어진 객체를 추가합니다.

int capacity(): 이객체의 용량을 얻습니다. 

void clear(): 모든 객체를 제거합니다.  

boolean contains(Object elem): 주어진 객체를 포함하고 있는지를 얻습니다.  

boolean containsAll(Collection c): 주어진 콜렉션 내의 객체들을 포함하고 있는지를 얻습니다. 


void copyInto(Object[] anArray):  

Object elementAt(int index): 주어진 위치에 있는 객체를 얻습니다.  

Enumeration elements(): 이 벡터에 대한 Enumeration 객체를 얻습니다.

void ensureCapacity(int minCapacity): 용량을 재설정합니다.  

Object firstElement(): 첫 번째 객체를 얻습니다.   

Object get(int index): 주어진 위치에 있는 객체를 얻습니다.  

int indexOf(Object elem): 주어진 객체의 위치를 얻습니다.  

int indexOf(Object elem, int index): 주어진 위치에서부터 시작하여 주어진 객체가 처음 나오는 위치를 얻습니다.


void insertElementAt(Object obj, int index): 주어진 위치에 객체를 삽입합니다.           

boolean isEmpty(): 비어있는지를 얻습니다.      

Object lastElement(): 마지막 객체를 얻습니다.  

int lastIndexOf(Object elem): 주어진 객체의 마지막 위치를 얻습니다.  

int lastIndexOf(Object elem, int index): 주어진 위치부터 마지막으로 나오는 객체의 위치를 얻습니다.

Object remove(int index): 주어진 위치의 객체를 제거합니다.  

boolean remove(Object o): 주어진 객체를 제거합니다.   

boolean removeAll(Collection c): 콜렉션에 있는 모든 객체를 제거합니다.  

void removeAllElements(): 모든 객체를 제거합니다. 

boolean removeElement(Object obj): 주어진 객체를 제거합니다.  

void removeElementAt(int index): 주어진 위치에 있는 객체를 제거합니다.  

boolean retainAll(Collection c): 콜렌션에 있는 객체들을 보존합니다.   

Object set(int index, Object element): 주어진 위치의 객체를 대체합니다. 

void setElementAt(Object obj, int index): 주어진 위치의 객체를 설정합니다.  

void setSize(int newSize): 벡터의 크기를 설정합니다.  

int size(): 벡터의 크기를 얻습니다. 


List subList(int fromIndex, int toIndex): 주어진 위치 사이의 리스트를 얻습니다.     

Object[] toArray(): 벡터를 객체 배열로 얻습니다.   


Object[] toArray(Object[] a): 벡터를 구어진 객체 배열에 저장합니다.