English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 기본 튜토리얼

Java 흐름 제어

Java 배열

Java 객체 지향(I)

Java 객체 지향(II)

Java 객체 지향(III)

Java 예외 처리

Java 목록(List)

Java Queue(큐)

Java Map 집합

Java Set 집합

Java 입력 출력(I/O)

Java Reader/Writer

Java 다른 주제

Java Vector (벡터)

이 튜토리얼에서는 Vector 클래스와 그 사용법을 배울 것입니다. 또한 ArrayList 클래스와의 차이점과 왜 배열리스트를 사용해야 하는지에 대해 배울 것입니다.

Vector 클래스는 List 인터페이스의 하나의 구현으로, 벡터와 유사한 구조를 생성할 수 있도록 합니다.ArrayList클래스의 조정 가능한 배열.

Java 벡터와 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]

vector 요소에 접근합니다

  • 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,

vector 요소를 제거합니다

  • 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(): []

벡터(vector) 다른 메서드

메서드콘텐츠 설명
set()벡터의 요소를 변경합니다
size()벡터의 크기를 반환합니다
toArray()벡터를 배열로 변환합니다
toString()벡터를 문자열로 변환합니다
contains()

지정된 요소를 벡터에서 검색하여 불리언 값을 반환합니다