
- ArrayList와 비슷한 성질(크기가 가변적으로 변함)을 가지고 있다.
- ArrayList와 다르게 동기화를 제공한다.
- 동기화를 제공하기 때문에 멀티 스레드 환경에서 안전(Thread Safe) 하며 이로 인해 낮은 성능을 보인다.
생성
import java.util.Vetor;
Vector<Integer> vector1 = new Vector<Integer>(); // 타입 지정
Vector<Integer> vector2 = new Vector<>(); // 타입 생략 가능
Vector<Integer> vector3 = new Vector>(10); // 초기 용량(Capacity) 설정
Vector<Integer> vector4 = new Vector (10, 10); // 초기 용량, 증가량 설정
Vector<Integer> vector5 = new Vector (vector1); // 다른 Collection값으로 초기화
Vector<Integer> vector6 = new Vector<<>(Arrays.asList(1, 2, 3, 4, 5)); // Arrays.asList()
추가 및 생성
import java.util.Vector;
public class Main {
public static void main(String[] args) {
Vector<String> colors = new Vector<>();
// add() method
colors.add("Black");
colors.add("White");
colors.add(0, "Green");
colors.add("Red");
// set() method
colors.set(0, "Blue");
System.out.println(colors);
}
}

- 인덱스를 지정하지 않으면 끝에 값을 추가한다.
- 인덱스를 지정하면 해당 위치에 추가되고 해당 인덱스부터 데이터들은 뒤로 한 칸씩 밀린다.
삭제
import java.util.Arrays;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
Vector<String> colors = new Vector(Arrays.asList("Black", "White", "Green", "Red"));
String removedColor = colors.remove(0);
System.out.println("Removed color is" + removedColor);
colors.remove("White");
System.out.println(colors);
colors.clear();
System.out.println(colors);
}
}

- 전체 삭제는 clear()
전체 값 확인
import java.util.Arrays;
import java.util.Iterator;
import java.util.ListIterator;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
Vector<String> colors = new Vector(Arrays.asList("Black", "White", "Green", "Red"));
//for-each loop
for (String color: colors) {
System.out.print(color + " ");
}
System.out.println();
// for loop
for (int i = 0; i < colors.size(); ++i) {
System.out.print(colors.get(i) + " ");
}
System.out.println();
// using iterator
Iterator<String> iterator = colors.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
System.out.println();
// using listIterator
ListIterator<String> listIterator = colors.listIterator(colors.size());
while (listIterator.hasPrevious()) {
System.out.print(listIterator.previous() + " ");
}
System.out.println();
}
}

- listlterator를 사용하면 역방향 순회가 가능하다.
값 존재 유무 확인
import java.util.Arrays;
import java.util.Vector;
public class Main {
public static void main(String[] args) {
Vector<String> colors = new Vector(Arrays.asList("Black", "White", "Green", "Red"));
boolean contains = colors.contains("Black");
System.out.println(contains);
int index = colors.indexOf("Blue");
System.out.println(index);
index = colors.indexOf("Red");
System.out.println(index);
}
}
- contains() - 값이 존재하면 true, 존재하지 않으면 false
- indexOf() - 값이 존재할 경우 인덱스 리턴, 존재하지 않으면 -1 리턴
'자료구조' 카테고리의 다른 글
[자료구조] TreeSet (0) | 2023.11.07 |
---|---|
[자료구조] Hash Set (0) | 2023.11.07 |
[자료구조] Stack (0) | 2023.11.06 |
[자료구조] ArrayList (0) | 2023.11.03 |
[자료구조] 자료구조형 (0) | 2023.11.03 |