반응형
Java에서 Vector(벡터)는 데이터를 저장하고 관리할 수 있는 컬렉션 클래스입니다. 마치 상자처럼 다양한 데이터를 저장할 수 있으며, 데이터를 넣고 꺼내는 동작을 간단히 수행할 수 있습니다. 오늘은 벡터가 무엇인지, 어떻게 사용하는지 초보자도 쉽게 이해할 수 있도록 알려드릴게요! 😊
1. 벡터(Vector)란?
Vector는 Java에서 데이터를 저장할 수 있는 컬렉션 클래스입니다.
벡터의 특징
- 동적 크기 배열: 데이터를 저장하다가 공간이 부족하면 자동으로 크기를 늘려줍니다.
- 모든 데이터 타입 저장 가능: 숫자, 문자열 등 다양한 데이터를 저장할 수 있습니다.
- 순서 유지: 데이터를 넣은 순서대로 저장됩니다.
- 중복 허용: 동일한 데이터를 여러 번 저장할 수 있습니다.
2. 벡터 기본 사용법
코드 예제: 벡터 생성과 데이터 추가
import java.util.Vector;
public class VectorEx {
public static void main(String[] args) {
// 벡터 생성
Vector<Integer> v = new Vector<>(); // 정수를 저장하는 벡터
System.out.println("초기 상태 -> Size: " + v.size() + ", Capacity: " + v.capacity());
// 1. 데이터 추가
for (int i = 0; i < 10; i++) {
v.addElement(i); // 데이터를 추가
}
System.out.println("10개 데이터 추가 후 -> Size: " + v.size() + ", Capacity: " + v.capacity());
// 2. 크기 초과
v.addElement(10); // 11번째 데이터 추가 → 용량 증가
System.out.println("11번째 데이터 추가 후 -> Size: " + v.size() + ", Capacity: " + v.capacity());
}
}
출력 결과
초기 상태 -> Size: 0, Capacity: 10
10개 데이터 추가 후 -> Size: 10, Capacity: 10
11번째 데이터 추가 후 -> Size: 11, Capacity: 20
설명
- Size: 벡터에 저장된 데이터의 개수입니다.
- Capacity: 벡터가 데이터를 저장할 수 있는 공간입니다. 데이터를 추가하다가 용량이 부족하면 자동으로 용량이 증가합니다.
3. 벡터 데이터 조회와 삭제
코드 예제: 데이터 확인과 삭제
public class VectorEx {
public static void main(String[] args) {
Vector<Integer> v = new Vector<>();
// 데이터 추가
for (int i = 0; i < 10; i++) {
v.addElement(i);
}
// 1. 특정 데이터 확인
System.out.println("5번째 데이터: " + v.elementAt(5)); // 출력: 5
// 2. 데이터 검색
System.out.println("5의 위치: " + v.indexOf(5)); // 출력: 5
System.out.println("20의 위치: " + v.indexOf(20)); // 출력: -1 (데이터 없음)
// 3. 데이터 포함 여부 확인
System.out.println("7 포함? " + v.contains(7)); // true
System.out.println("20 포함? " + v.contains(20)); // false
// 4. 데이터 삭제
v.removeElement(7); // 7 삭제
System.out.println("7 삭제 후 벡터: " + v);
}
}
출력 결과
5번째 데이터: 5
5의 위치: 5
20의 위치: -1
7 포함? true
20 포함? false
7 삭제 후 벡터: [0, 1, 2, 3, 4, 5, 6, 8, 9]
설명
- elementAt: 특정 위치의 데이터를 확인합니다.
- indexOf: 데이터가 저장된 위치를 찾습니다.
- contains: 데이터가 벡터에 있는지 확인합니다.
- removeElement: 특정 데이터를 삭제합니다.
4. 벡터 순회 (모든 데이터 출력)
코드 예제: 반복문과 Enumeration 사용
import java.util.Enumeration;
public class VectorEx2 {
public static void main(String[] args) {
Vector<Integer> v = new Vector<>();
// 데이터 추가
for (int i = 0; i < 10; i++) {
v.addElement(i);
}
// 1. 일반 반복문 사용
System.out.println("일반 반복문:");
for (int i = 0; i < v.size(); i++) {
System.out.print(v.elementAt(i) + " ");
}
System.out.println();
// 2. Enumeration 사용
System.out.println("Enumeration 사용:");
Enumeration<Integer> e = v.elements();
while (e.hasMoreElements()) {
System.out.print(e.nextElement() + " ");
}
System.out.println();
}
}
출력 결과
일반 반복문:
0 1 2 3 4 5 6 7 8 9
Enumeration 사용:
0 1 2 3 4 5 6 7 8 9
설명
- 일반 반복문: for 문을 사용해 데이터를 하나씩 출력합니다.
- Enumeration: elements() 메서드로 데이터를 순회합니다.
5. 벡터와 제네릭(Generic)
제네릭을 사용하면 벡터에 저장할 데이터 타입을 제한할 수 있습니다.
Vector<? super Number> v2 = new Vector<>();
v2.addElement(10); // Integer
v2.addElement(3.14f); // Float
제네릭의 장점
- 타입 안정성 보장: 지정된 타입 외의 데이터를 추가할 수 없습니다.
- 불필요한 형 변환 제거: 데이터를 꺼낼 때 캐스팅하지 않아도 됩니다.
6. 정리
- 벡터(Vector)는 데이터를 저장하고 관리할 수 있는 동적 배열입니다.
- 데이터를 추가하다가 공간이 부족하면 자동으로 크기를 늘려줍니다.
- 데이터 추가, 조회, 삭제, 검색 등 다양한 작업을 수행할 수 있습니다.
- Enumeration과 제네릭을 활용하면 데이터를 더 효율적으로 관리할 수 있습니다.

반응형
'개발 > JAVA' 카테고리의 다른 글
Java 예외 처리: 안전한 프로그램을 위한 기본 개념 (10) | 2025.01.14 |
---|---|
Java 제네릭(Generic): 타입을 유연하게 관리하는 방법 (25) | 2025.01.13 |
Java 자료구조: 스택(Stack)과 큐(Queue) 배우기! (16) | 2025.01.09 |
Java 컬렉션: List 인터페이스와 ArrayList 활용법 (8) | 2025.01.08 |
Java 컬렉션: HashSet과 HashTable 사용법 (2) | 2025.01.07 |