Java

[Java] Vector

안도일 2022. 12. 18. 15:59

벡터

 

Vector 클래스는 java.util 패키지에 있는 컬렉션의 일종으로 가변 크기의 배열을 구현하고 있다.

요소의 개수가 늘어나면 자동으로 배열 크기가 늘어나고 어떤 타입의 객체라도 저장 가능하다.

정수와 같은 기초 데이터도 오토박싱 기능을 이용하여 객체로 변환되어 저장된다.

 

ArrayList와 거의 동일하나 Vector는 항상 동기화되어 있어서 스레드 간 동기화를 지원하지만 ArrayList는 지원하지 않는다. 또한 Vector가 ArrayList 보다 속도가 더 느리다.

 

 

Vector 테스트

 

벡터 객체 vc에 정수형, 상수형을 넣어보자.

 

import java.util.Vector;

public class VectorTest {

	public static void main(String[] args) {
		
		Vector vc = new Vector();
		
		vc.add("Hello World");
		vc.add(new Integer(10));
		vc.add(20); //정수와 같은 기초 데이터도 오토박싱 기능을 이용하여 객체로 변환되어 저장됨
		
		System.out.println("vector size: " + vc.size());
		
		for(int i=0; i<vc.size(); i++) {
			System.out.println("vector element " + i + ": " + vc.get(i));
		}
	}
}

 

 

Point 벡터

 

점 (x,y)를 표현하는 Point 클래스를 만들고 Point만 다루는 벡터 객체를 생성해보자

Point 클래스에서 toString()을 오버라이딩 하여 Point 객체를 출력할 수 있게 작성해보자 

 

class Point{
	int x,y;
	
	public Point(int x, int y) {
		this.x = x;
		this.y = y;
	}
	
	public String toString() { //Object 클래스의 toString() 오버라이딩
		String a = getClass().getName() + "(" + x + "," + y + ")";
		return a;	
	}
}

 

import java.util.Vector;

public class PointVectorExam01 {

	public static void main(String[] args) {
		
		Vector<Point> v = new Vector(); 
		
		v.add(new Point(2,3));
		v.add(new Point(-5,20));
		v.add(new Point(30,18));
		
		v.remove(1);
		
		for(int i=0; i<v.size(); i++) {
			System.out.println(v.get(i));
		}
	}
}