자바의 벡터 | 예제가 있는 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와 같이 배열의 크기를 변경하는 돌연변이 방법은 배열의 크기를 영구적으로 변경하기 때문에 파괴적 방법이라고 합니다.