English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 Vector 클래스와 그 사용법을 배울 것입니다. 또한 ArrayList 클래스와의 차이점과 왜 배열리스트를 사용해야 하는지에 대해 배울 것입니다.
Vector 클래스는 List 인터페이스의 하나의 구현으로, 벡터와 유사한 구조를 생성할 수 있도록 합니다.ArrayList클래스의 조정 가능한 배열.
Java에서 ArrayList와 Vector는 모두 List 인터페이스를 구현하여 동일한 기능을 제공하지만, 차이점이 있습니다.
Vector 클래스는 각 단일 작업을 동기화합니다. 이는 벡터에 작업을 수행하고자 할 때마다 Vector 클래스가 해당 작업에 대해 자동으로 락을 적용한다는 의미입니다.
이는 하나의 스레드가 벡터에 접근하면서 다른 스레드가 동시에 접근하려고 시도할 때 ConcurrentModificationException 예외가 발생하기 때문입니다. 따라서 각 작업에 대해 지속적으로 락을 사용하면 벡터의 효율성이 저하됩니다.
하지만 ArrayList에서는 메서드가 동기화되지 않습니다. 대신 Collections.synchronizedList() 메서드를 사용하여 전체 목록을 동기화합니다.
주의:벡터는 스레드 안전하지 않으며 효율성이 낮기 때문에 ArrayList 대신 사용하는 것이 좋습니다.
이렇게 Java에서 벡터를 생성하는 방법입니다.
Vector<Type> vector = new Vector<>();
여기서 Type은 벡터가 저장할 데이터 타입을 의미합니다. 예를 들어,
//정수형 벡터 생성 Vector<Integer> vector = new Vector<>(); //문자형 벡터 생성 Vector<String> vector = new Vector<>();
Vector 클래스는 List 인터페이스의 조정 가능한 배열 구현을 제공합니다. (ArrayList 클래스와 유사합니다). 일부 Vector 메서드는 다음과 같습니다:
add(element) - 벡터에 요소 추가
add(index, element) - 지정된 위치에 요소 추가
addAll(vector) - 모든 요소를 다른 벡터에 추가
예를 들어,
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> mammals = new Vector<>(); //add() 메서드 사용 mammals.add("Dog"); mammals.add("Horse"); //사용 인덱스 번호 mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // 사용 addAll() 메서드 Vector<String> animals = new Vector<>(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); } }
출력 결과
Vector: [Dog, Horse, Cat] New Vector: [Crocodile, Dog, Horse, Cat]
get(index) - 인덱스로 지정된 요소를 반환합니다
iterator() - 요소를 순서대로 접근하기 위한 이터레이터 객체를 반환합니다
예를 들어,
import java.util.Iterator; import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Dog"); animals.add("Horse"); // 사용 get() 메서드 2);}} System.out.println("Element at index", 2: " + element); // 사용 iterator() Iterator<String> iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) { System.out.print(iterate.next()); System.out.print(", "); } } }
출력 결과
index에 위치한 요소 2: Cat Vector: Dog, Horse, Cat,
remove(index) - 지정된 위치에서 요소를 제거합니다
removeAll() - 모든 요소를 제거합니다
clear() - 모든 요소를 제거합니다. removeAll()보다 효율적입니다
예를 들어,
import java.util.Vector; class Main { public static void main(String[] args) { Vector<String> animals = new Vector<>(); animals.add("Dog"); animals.add("Horse"); System.out.println("Initial Vector: ", + animals); //사용 remove() 메서드 String element = animals.remove(1);}} System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // clear() 메서드 사용 animals.clear(); System.out.println("Vector after clear(): " + animals); } }
출력 결과
Initial Vector: [Dog, Horse, Cat] Removed Element: Horse New Vector: [Dog, Cat] Vector after clear(): []
메서드 | 콘텐츠 설명 |
---|---|
set() | 벡터의 요소를 변경합니다 |
size() | 벡터의 크기를 반환합니다 |
toArray() | 벡터를 배열로 변환합니다 |
toString() | 벡터를 문자열로 변환합니다 |
contains() | 지정된 요소를 벡터에서 검색하여 불리언 값을 반환합니다 |