이 포스트에서는 Java의 List 인터페이스를 구현하는 Vector 클래스에 대해 알아보겠습니다. Vector는 순서가 있는 컬렉션으로 중복 요소를 허용하며, 동기화된 방식으로 동작합니다. 다양한 메서드를 사용하여 Vector를 다루는 방법을 예제를 통해 살펴보겠습니다.
Vector 클래스는 List 인터페이스를 구현하며, 동기화된 방식으로 동작하기 때문에 멀티스레드 환경에서 안전하게 사용할 수 있습니다. ArrayList와 유사하지만, Vector는 내부적으로 스레드 안전을 보장합니다. 기본적으로 초기 용량은 10이며, 용량이 가득 차면 자동으로 크기를 늘립니다.
package ex03.collection.list;
import java.util.*;
//List : 순서 있고, 중복허용
public class MainEntry {
public static void main(String[] args) {
Vector<Integer> v = new Vector<Integer>(); // 초기 용량 - 10
System.out.println("length / capacity");
System.out.println(v.size() + " / " + v.capacity());
Vector<Integer> v2 = new Vector<Integer>(3, 4); // 초기 용량, 증가 용량
v2.add(2);
v2.add(21);
v2.add(23);
v2.add(234);
v2.add(2311);
v2.add(13222);
v2.add(133);
v2.add(63);
v2.add(513);
v2.add(1234);
v2.add(1004);
v2.add(207);
System.out.println(v2); // 순서 있고, 중복 허용한다.
System.out.println(v2.size() + " / " + v2.capacity());
System.out.println("========================== iterator() method =============");
Iterator<Integer> it = v2.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("=============get() method ===============");
for (int i = 0; i < v2.size(); i++) {
System.out.println(v2.get(i));
}
System.out.println("=============sort method ================");
Collections.sort(v2);
for (int i = 0; i < v2.size(); i++) {
System.out.println(v2.get(i));
}
System.out.println("==============elementAt() method ===============");
for (int i = 0; i < v2.size(); i++) {
Integer num = v2.elementAt(i);
System.out.println(num);
}
System.out.println("===============trimToSize() method ===============");
v2.trimToSize();
System.out.println(v2.size() + " / " + v2.capacity());
}
}
Vector<Integer> v = new Vector<Integer>(); // 초기 용량 - 10
System.out.println("length / capacity");
System.out.println(v.size() + " / " + v.capacity());
Vector<Integer> v2 = new Vector<Integer>(3, 4); // 초기 용량 3, 증가 용량 4
v2.add(2);
v2.add(21);
v2.add(23);
v2.add(234); // 용량이 3을 초과하여 용량이 4 증가 (7)
// 추가 요소 생략
System.out.println(v2); // 순서 있고, 중복 허용
System.out.println(v2.size() + " / " + v2.capacity());
Iterator<Integer> it = v2.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
for (int i = 0; i < v2.size(); i++) {
System.out.println(v2.get(i));
}
Collections.sort(v2);
for (int i = 0; i < v2.size(); i++) {
System.out.println(v2.get(i));
}
for (int i = 0; i < v2.size(); i++) {
Integer num = v2.elementAt(i);
System.out.println(num);
}
v2.trimToSize();
System.out.println(v2.size() + " / " + v2.capacity());