[자료구조] 벡터(Vector)

HONGKYUMIN (ANTHONY)·2022년 8월 16일
0

어레이리스트와 벡터
https://www.geeksforgeeks.org/vector-vs-arraylist-java/

벡터(Vector)란?

ArrayList와 동일한 구조를 가지며 배열의 크기가 늘어나고 줄어듦에 따라서 자동으로 크기가 조절이 되는 자료구조이다.

✔ 벡터(Vector)는 항상 동기화 되어있고, Collection 프레임워크에 없는 메소드들을 사용 가능하다.
하지만 동기화라는 특징이 있어, 스레드가 아닌 환경에서는 거의 사용이 되지 않는다.

Vector란 Collection 프레임워크의 일부이며 java.util 패키지에 소속되어 있다.

❗ Vector는 Array와 달리 스레드 동기화를 보장하므로 Array에 비해 데이터에 접근하는 속도가 상대적으로 느리다.



벡터(Vector) 사용하기

✏벡터 선언

Vector V = new Vector(); // 타입 설정x Object로 사용 
Vector<VectorDemo> demo = new Vector<VectorDemo>(); // 타입설정 VectorDemo 객체로 선언 
Vector<Integer> i = new Vector<Integer>(); // int 타입으로 선언 
Vector<Integer> i2 = new Vector<>(); // 타입 선언 생략
Vector<Integer> i3 = new Vector<Integer>(10); // 초기 용량 세팅 
Vector<Integer> i4 = new Vector<Integer>(Arrays.asList(1, 2, 3, 4)); // 초기 값 세팅 
		
Vector<String> s = new Vector<String>(); // String 타입 사용 
Vector<Character> ch = new Vector<Character>(); // char 타입 사용

✏값 추가

  • .add( e ) 메소드
import java.util.Vector;

public class VectorDemo {
	public static void main(String[] args)  {
		Vector V = new Vector(); 
		
		V.add("Hello");
		V.add("Hello");
		V.add(1, "World");
		V.add(null);
		
		System.out.print(V);
	}
}

✏값 삭제

  • .remove(index) 메소드 (해당 인덱스의 요소 삭제)
  • .clear(index) 메소드 (전체 데이터 삭제)
  • .removeAllElements( ) 메소드 (전체 데이터 삭제)
public class VectorDemo {
	public static void main(String[] args)  {
		Vector V = new Vector(); 
		
		V.add("Hello");
		V.add("World");
		V.add("Hello");
		V.add("World");
		
		System.out.println(V);
		
		V.remove(1); // Index 1의 값 제거

		System.out.println(V);

		V.removeAllElements(); // 모든 데이터 제거 

		System.out.println(V);

		V.add("Hello");
		V.add("World");
		V.clear(); // 모든 데이터 제거

		System.out.println(V);
	}
}

✏값 변경

  • .set( index, e ) 메소드
public class VectorDemo {
	public static void main(String[] args)  {
		Vector V = new Vector(); 
		
		V.add("Hello");
		V.add("Hello");
		V.add(1, "World");
		
		System.out.println(V);
		
		V.set(1, "Hello");

		System.out.println(V);
	}
}

✏사이즈 구하기

  • .size( ) 메소드
  • .capacity( ) 메소드
public class VectorDemo {
	public static void main(String[] args)  {
		Vector V = new Vector(); 
		
		V.add("Hello");
		V.add("World");
		V.add("Hello");
		V.add("World");
		
		System.out.println("Size : " + V.size()); // Vector의 크기 구하기
		System.out.println("Capacity : " + V.capacity()); // Vector의 용량 구하기
	}
}

✏검색(출력)하기

  • .get( ) 메소드
public class VectorDemo {
	public static void main(String[] args)  {
		Vector<String> V = new Vector<>(); 
		
		V.add("Hello");
		V.add("World");
		V.add("Hello");
		V.add("World");
		
		// get(i)를 사용하여 값 출력
		for(int i = 0; i < V.size(); i++)
			System.out.print(V.get(i) + " ");

		System.out.println();
		
		// 향상된for문을 사용하여 값 출력
		for(String s : V)
			System.out.print(s + " ");

		System.out.println();
		
		// Iterator 사용 값 출력
		Iterator iter = V.iterator();
		while(iter.hasNext())
			System.out.print(iter.next() + " ");
	}
}


Reference

profile
매일매일 성장하는 개발자

0개의 댓글