Java Vector - List 인터페이스와 Vector 클래스 사용법

Soozoo·2024년 6월 24일

JAVA

목록 보기
19/41

이 포스트에서는 Java의 List 인터페이스를 구현하는 Vector 클래스에 대해 알아보겠습니다. Vector는 순서가 있는 컬렉션으로 중복 요소를 허용하며, 동기화된 방식으로 동작합니다. 다양한 메서드를 사용하여 Vector를 다루는 방법을 예제를 통해 살펴보겠습니다.

Vector 클래스 기본 개념

Vector 클래스는 List 인터페이스를 구현하며, 동기화된 방식으로 동작하기 때문에 멀티스레드 환경에서 안전하게 사용할 수 있습니다. ArrayList와 유사하지만, Vector는 내부적으로 스레드 안전을 보장합니다. 기본적으로 초기 용량은 10이며, 용량이 가득 차면 자동으로 크기를 늘립니다.

code 예시:

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());
    } 
}

주요 코드 설명

1. Vector 생성 및 초기 용량 확인

Vector<Integer> v = new Vector<Integer>(); // 초기 용량 - 10
System.out.println("length       /      capacity");
System.out.println(v.size() + "            /        " + v.capacity());

2.Vector에 요소 추가 및 용량 증가

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());

3.Iterator를 사용한 요소 순회

Iterator<Integer> it = v2.iterator();
while (it.hasNext()) {
    System.out.println(it.next());
}

4. get() 메서드를 사용한 요소 접근

for (int i = 0; i < v2.size(); i++) {
    System.out.println(v2.get(i));
}

5. 정렬

Collections.sort(v2);
for (int i = 0; i < v2.size(); i++) {
    System.out.println(v2.get(i));
}

6. elementAt() 메서드를 사용한 요소 접근

for (int i = 0; i < v2.size(); i++) {
    Integer num = v2.elementAt(i);
    System.out.println(num);
}

7. trimToSize() 메서드를 사용한 용량 최적화

v2.trimToSize();
System.out.println(v2.size() + "            /        " + v2.capacity());

profile
넙-죽

0개의 댓글