자바의 벡터 | 예제가 있는 Java 벡터 클래스
게시 됨: 2021-05-26프로그래밍에서 가장 일반적으로 사용되는 데이터 구조 중 하나는 Java의 Vector입니다. 배열 은 데이터를 선형으로 저장할 수 있는 정적 데이터 구조입니다. 마찬가지로 Java의 벡터도 데이터를 선형으로 저장하지만 고정된 크기로 제한되지 않습니다. 대신 요구 사항에 따라 크기가 커지거나 줄어들 수 있습니다. 상위 클래스는 AbstractList 클래스이며 List Interface에서 구현됩니다.
벡터 사용을 시작하기 전에 다음과 같이 java.util.package에서 가져옵니다.
java.util.Vector 가져오기
목차
벡터의 선언 및 평가 요소
다음은 Java에서 벡터가 선언되는 방법입니다.
공개 클래스 Vector<V>는 AbstractList<V>를 확장합니다.
List<V>, RandomAccess, Cloneable, Serializable 구현

여기서 V는 int, string, char 등이 될 수 있는 요소의 유형입니다.
배열의 데이터 멤버에 액세스하는 것처럼 요소의 인덱스를 사용하여 벡터에서도 이를 수행할 수 있습니다. 예를 들어 벡터 E의 두 번째 요소는 E[2]로 액세스할 수 있습니다.
Java에서 벡터를 선언하는 동안 발생하는 몇 가지 일반적인 오류:
- 벡터의 초기 크기가 음수 값이면 IllegalArgumentException이 발생합니다.
- 지정된 컬렉션이 null이면 NullPointerException이 발생합니다.
- 벡터의 크기가 벡터의 용량보다 작거나 같음
- 벡터 증분이 지정되지 않은 경우 용량은 모든 증분 주기에서 두 배로 증가합니다.
생성자
1. 벡터(int initialCapacity, int Increment)
이것은 지정된 초기 용량으로 Java에서 벡터를 생성하고 증분도 지정됩니다. 증분을 사용하면 벡터가 위쪽으로 크기 조정될 때마다 할당되는 요소 수가 지정됩니다.
구문: Vector<V> e = new Vector<V>(int initialCapacity, int Increment);
2. 벡터(int initialCapacity)
지정된 크기와 동일한 초기 용량으로 Java에서 벡터를 생성합니다.
구문: Vector<V> e = new Vector<V>(int initialCapacity);
3. 벡터()
초기 기본 용량이 10인 Java에서 벡터를 생성합니다.
구문: Vector<V> e = new Vector<V>();
4. 벡터(컬렉션 c)
요소가 컬렉션 c의 요소인 벡터를 Java에 생성합니다.
구문: Vector<V> e = new Vector<V>(컬렉션 c);
다음은 자바에서 벡터를 생성하고 사용하는 방법을 보여주는 예입니다.
암호
가져오기 java.util.*;
공개 클래스 메인{
공개 정적 무효 메인(String[] 인수)
{
// 기본 벡터 생성
벡터 a = new Vector();
// 지정된 크기의 벡터 생성
벡터 b = new Vector(20);
// 지정된 Size 및 Increment의 벡터 생성
벡터 c = new Vector(30,10);
b.add(100);
b.add(200);
b.add(300);
// 지정된 컬렉션으로 벡터 생성
벡터 d = 새로운 벡터(b)
System.out.println("용량의 벡터 " + a.capacity());
System.out.println("용량의 벡터 b " + b.capacity());
System.out.println("용량의 벡터 c " + c.capacity());
System.out.println("용량의 벡터 d " + d.capacity());
}}
산출
참고: .capacity()는 벡터의 용량을 반환하는 데 사용됩니다.
Java의 벡터에는 다음과 같이 세 개의 보호된 매개변수가 있습니다.
1. Int elementCount()- 벡터에 포함된 요소의 수를 알려줍니다.
2. Int capcityIncremen()- 벡터의 크기가 용량보다 커지면 이에 따라 용량이 자동으로 증가합니다.
3. Object[] elementData()- 벡터의 요소는 배열에 저장됩니다.
행동 양식
다음은 Java에서 자주 사용되는 벡터 메소드입니다.
1. 요소 추가
Boolean add(Object o)- 요소가 벡터 끝에 추가됩니다.
Void add( int index V element)- 주어진 요소가 벡터의 지정된 인덱스에 추가됩니다.
Java에서 Vector에 요소를 추가하는 코드:
가져오기 java.util.*;
가져오기 java.io.*;
공개 클래스 AddElementsToVector {
공개 정적 무효 메인(문자열[] 인수)
{
// 기본 벡터 생성
벡터 a = new Vector();
// add() 메서드를 사용하여 요소 추가
a.add(1);
a.add(2);
a.add("벡트");
a.add("for");
a.add(3);
System.out.println("벡터 a는 " + a);
// 일반 벡터 생성
Vector<Integer> b = 새로운 Vector<Integer>();
b.add(0);
b.add(1);
b.add(2);
System.out.println("벡터 b는 " + b);
}
}
산출
2. 요소 제거
Boolean Remove(object o) – 벡터의 지정된 인덱스에서 요소를 제거하는 데 사용됩니다.
요소가 제거되면 모든 요소가 왼쪽으로 이동하여 공백을 채웁니다. 그런 다음 인덱스가 업데이트됩니다.
Java의 벡터에서 요소 제거를 설명하는 코드:
가져오기 java.util.*;
가져오기 java.io.*;
공개 클래스 제거 {
공개 정적 무효 메인(문자열[] 인수)
{
// 기본 벡터 생성
벡터 a = new Vector();
// add() 메서드를 사용하여 요소 추가
a.add(1);
a.add(2);
a.add("벡트");
a.add("for");
a.add(4);
// 요소 제거
a.제거(2);
// 확인하다
System.out.println("제거 후: " + a);

}
}
산출
확인 : Java에서 성공적인 경력을 쌓는 방법은 무엇입니까?
3. 변경 요소
set() 메서드는 요소를 추가한 후 요소를 변경하는 데 사용할 수 있습니다. 요소의 인덱스는 벡터가 인덱싱될 때 참조될 수 있습니다. 이 메서드는 인덱스와 업데이트된 요소를 사용합니다.
Java에서 벡터의 요소를 변경하는 코드
가져오기 java.util.*;
공개 클래스 업데이트 {
공개 정적 무효 메인(문자열 인수[])
{
// 빈 벡터 생성
벡터<정수> a = 새로운 벡터<정수>();
// 요소 추가
a.add(1);
a.add(2);
a.add(3);
a.add(10);
a.add(20);
// 표시하다
System.out.println("벡터: " + a);
// 바꾸다
System.out.println("바꾸기"
+ a.set(0, 22));
System.out.println("바꾸기"
+ a.set(4, 50));
// 수정된 벡터 표시
System.out.println("새로운 벡터는:" + a);
}
}
산출
4. 벡터 반복
벡터를 반복하는 방법에는 여러 가지가 있습니다. 그 중 하나는 get() 메서드입니다. 다음은 Java에서 Vector의 요소를 반복하는 프로그램입니다.
가져오기 java.util.*;
공개 클래스 반복 {
공개 정적 무효 메인(문자열 인수[])
{
// 벡터의 인스턴스 생성
벡터<문자열> a = 새로운 벡터<>();
// add() 메서드를 사용하여 요소 추가
a.add("벡터");
a.add("입력");
a.add(1, "자바");
// Get 메서드와 for 루프 사용
for (int i = 0; i < a.size(); i++) {
System.out.print(a.get(i) + " ");
}
System.out.println();
// 루프마다 사용
(문자열 str : a)
System.out.print(str + " ");
}
}
산출
읽기: Java 아키텍처 및 구성 요소
기타 중요한 방법
- Int size() – 벡터의 크기를 반환하는 데 사용
- Object get(int index) – 벡터의 지정된 위치에 있는 요소를 반환하는 데 사용됩니다.
- Object firstElement() – Java에서 벡터의 첫 번째 요소를 반환하는 데 사용
- Object lastElement() – Java에서 벡터의 마지막 요소를 반환하는 데 사용
- Boolean equals(Object o) – 벡터와 주어진 객체가 같은지 비교하는 데 사용됩니다. 모든 요소가 해당 인덱스에서 true이면 true를 반환합니다.
- Void trimtosize() – 추가 용량을 제거하고 용량을 크기와 동일하게 유지하는 데 사용됩니다.
벡터에 대한 추가 정보
- Java의 벡터는 정수 인덱스를 사용하여 액세스할 수 있는 동적 데이터 구조입니다.
- ArrayList와 유사하지만 컬렉션 프레임워크에서 사용할 수 없는 일부 레거시 메서드가 포함되어 동기화됩니다.
- 게재 신청서가 유지됩니다.
- 스레드가 아닌 환경에서는 거의 사용되지 않습니다.
- 동기화로 인해 벡터는 요소 검색, 추가, 업데이트 및 삭제 성능이 저하됩니다.
- 벡터 클래스의 반복자는 빠르게 실패하고 동시 수정의 경우 ConcurrentModificationException을 발생시킵니다.
- 스택은 직접적으로 알려진 하위 클래스입니다.
벡터의 메모리 할당
위에서 볼 수 있듯이 벡터에는 정의된 크기가 없습니다. 대신 Java의 벡터는 크기를 동적으로 변경할 수 있습니다. 벡터는 요소를 저장하기 위해 무한한 공간을 할당한다고 가정합니다. 그러나 그렇지 않습니다. 벡터의 크기는 '용량 증분'과 '용량'의 두 필드에 따라 변경됩니다.
벡터 선언 시 해당 크기만큼의 'capacity' 필드가 할당되며, 해당 용량만큼 요소가 추가될 수 있다. 다음 요소가 삽입되는 즉시 'capacityIncrement' 크기만큼 배열의 크기가 증가합니다. 이것은 벡터의 크기를 변경할 수 있는 기능을 제공합니다. 새 요소가 삽입되면 기본 생성자의 용량이 두 배가 됩니다.

세계 최고의 대학에서 온라인으로 소프트웨어 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
자바에서 벡터의 장점
벡터의 동적 크기는 메모리 낭비를 방지하고 데이터 구조의 크기는 프로그램 중간에 언제든지 변경할 수 있습니다.
벡터와 ArrayList는 모두 동적입니다. 그러나 벡터는 다음과 같이 더 유리합니다.
- 벡터가 동기화됩니다.
- ArrayList에서 구현할 수 없는 일부 레거시 기능이 있습니다.
결론
Java의 벡터는 Java 1.2 이후 Java Collection Framework의 일부인 크기 제한이 없는 동적 배열입니다. 우리는 이 블로그에서 다양한 생성자와 널리 사용되는 벡터 방법을 보았습니다. Vector 클래스는 스레드로부터 안전한 환경에서만 사용해야 합니다.
Java, OOP 및 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 upGrad & IIIT-B의 소프트웨어 개발 PG 프로그램 – 전체 스택 개발 전문화를 확인하십시오. 이 프로그램은 작업 전문가를 위해 설계되었으며 500시간 이상의 엄격한 교육, 9개 이상의 프로젝트 및 과제, IIIT-B 동문 자격, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.
자바에서 벡터란?
벡터는 Java의 데이터 구조입니다. 이름에서 알 수 있듯이 벡터는 일종의 요소 시퀀스입니다. 액세스할 때 확장 및 축소되는 동적 배열을 사용합니다. 벡터의 현재 크기를 가져오는 size() 메서드와 벡터의 용량을 가져오는 capacity() 메서드가 있습니다. 이 두 메서드는 0보다 큰 값을 반환합니다. 벡터의 용량은 새 배열을 할당하지 않고도 벡터 내부에 저장할 수 있는 요소의 수입니다. 벡터의 크기는 현재 벡터 내부에 저장된 요소의 수입니다.
배열에 비해 벡터의 장점은 무엇입니까?
배열은 크기가 고정되어 필요에 따라 확장하거나 축소할 수 없습니다. 벡터는 동적으로 크기를 조정할 수 있는 배열로 구현되어 필요에 따라 확장 및 축소할 수 있습니다. 이는 데이터의 지속적인 증가에 유용합니다. 예를 들어 텍스트 파일을 한 줄씩 읽는 프로그램은 파일 크기와 함께 성장할 수 있습니다. 벡터는 일반적으로 배열보다 효율적입니다. 벡터는 참조 배열(java.lang.Objects)로 구현되는 반면 배열은 객체 배열로 구현되기 때문입니다.
자바에서 ArrayList란?
ArrayList 클래스는 동적 배열을 나타냅니다. 새로운 요소를 수용하기 위해 필요에 따라 확장할 수 있습니다. 배열은 실제로 개체에 대한 참조 목록으로 구현됩니다. 요소를 생성해야 할 때마다 새 개체에 대한 참조를 사용할 수 있습니다. 이는 ArrayList가 동적으로 크기 조정 가능한 목록으로 구현되기 때문에 가능합니다. ArrayList는 AbstractList에서 대부분의 메서드와 필드를 상속합니다. ArrayList는 새 객체를 생성할 필요가 없기 때문에 배열보다 빠릅니다. add, set, remove와 같이 배열의 크기를 변경하는 돌연변이 방법은 배열의 크기를 영구적으로 변경하기 때문에 파괴적 방법이라고 합니다.