본문 바로가기

자바공부

컬렉션 Vector의 활용, 명품 자바 프로그래밍 7장

728x90
반응형

* Vector<E> (벡터라고 부른다.)는 배열을 가변 크기로 다룰 수 있게 하고, 객체의 삽입, 삭제, 이동이 쉽도록 구성한 컬렉션 클래스이다. 벡터는 삽입되는 요소의 개수에 따라 자동으로 크기를 조절하고, 요소의 삽입과 삭제에 따라 자동으로 요소들의 자리를 이동한다.

생성 )

Vector<Integer> v = new Vector<Integer>(); // 정수값만 사용하는 벡터 생성

레퍼런스 변수 선언과 벡터 생성을 분리하여 코드를 만들 수 있다.

Vector<String> stringVector; // 제네릭 컬렉션에 대한 레퍼런스 변수 선언
StringVector = new Vector<String>(); // 문자열 벡터 생성

Vector<Integer> v = new Vector <Integer>() 백터 생성

* Vector<E> 클래스의 주요 메소드

메소드 설명
boolean add(E element) 벡터의 맨 뒤에 element 추가
void add(int index, E elemnt) 인덱스 intex에 element를 삽입
int capacity() 벡터의 현재 용량 리턴
boolean addAll(Collection <? extends E> 컬렉션 c의 모든 요소를 벡터의 맨 뒤에 추가
void clear() 벡터의 모든 요소 삭제
boolean contains(Object o) 벡터가 지정된 객체 o를 포함하고 있으면 true 리턴
E elementAt(int index) 인덱스 index의 요소 리턴
E get(int index) 인덱스 index의 요소 리턴
int indexOf(Object o) o와 같은 첫 번째 요소의 인덱스 리턴, 없으면 -1 리턴
boolean is Empty() 벡터가 비어 있으면 true 리턴
E remove(int index) 인덱스 index의 요소 삭제
boolean remove(Obect o) 객체 o와 같은 첫 번째 요소를 벡터에서 삭제
void removeAllElements() 벡터의 모든 요소를 삭제하고 크기를 0으로 만듦
int size() 벡터가 포함하는 요소의 개수 리턴
Object[] toArray() 벡터의 모든 요소를 포함하는 배열 리턴

Vector<Integer> 생성 및 삽입 삭제 예시 1
Vector<Integer> 생성 및 삽입 삭제 예시 2

* 자동 박싱/언박싱은 모든 컬렉션 클래스에서 작동한다.

 

* 정수만 다루는 Vector<Integer> 컬렉션 활용

package Ch7_Ex;

import java.util.Vector;

public class VectorEx {
	public static void main(String[] args) {
		Vector<Integer> v = new Vector<Integer>(); // 정수 값만 다루는 벡터 생성
		v.add(5);	// 5 삽입
		v.add(4);	// 4 삽입
		v.add(-1);	// -1 삽입
		// 5, 4, -1
		
		//벡터 중간에 삽입하기
		v.add(2,100);	// 4와 -1 사이에 정수 100 삽입
		
		System.out.println("벡터 내의 요소 객체 수 : " + v.size());
		System.out.println("백터의 현재 용량 : " + v.capacity());
		
		// 모든 요소 정수 출력하기
		for(int i=0; i<v.size(); i++) {
			int n=v.get(i);	// 벡터의 i 번째 정수
			System.out.println(n);
		}
			
		
		// 벡터 속의 모든 정수 더하기
		int sum=0;
		for(int i=0;i<v.size();i++) {
			int n = v.elementAt(i);	// 벡터의 i 번째 정수
			sum += n;
		}
		System.out.println("벡터에 있는 정수 합 : " + sum);
	}
}

 

* Point 클래스만 다루는 Vector<Point> 컬렉션 활용

package Ch7_Ex;

import java.util.Vector;

class Point {
	private int x, y;
	public Point(int x, int y) {
		this.x=x; this.y=y;
	}
	public String toString() {
		return "(" + x + "," + y + ")";
	}
}
public class PointVectorEx {
	public static void main(String[] args) {
		Vector<Point> v = new Vector<Point>(); // Point 객체를 요소로 다루는 벡터 생성
		
		// 3 개의 Point 객체 삽입
		v.add(new Point(2,3));
		v.add(new Point(-5, 20));
		v.add(new Point(30,-8));
		
		v.remove(1); // 인덱스 1개의 Point(-5,20) 객체 삭제
		
		// 벡터에 있는 Point 객체 모두 검색하여 출력
		for(int i=0; i<v.size(); i++) {
			Point p = v.get(i);	// 벡터의 i 번쨰 Point 객체 얻어내기
			System.out.println(p);	// p.toString()을 이용하여 객체 p 출력
		}
	}
}
반응형