Java에서 Vector는 무엇이며 어떻게 사용합니까?



'Vectors in Java'에 대한이 블로그는 벡터 클래스가 ArrayList와 어떻게 다른지 이해하고 관련된 다양한 메소드에 대해 배우는 데 도움이됩니다.

벡터 프로그래밍 세계에서 가장 일반적으로 사용되는 데이터 구조 중 하나입니다.우리 모두는 알고 있습니다 배열 선형 방식으로 데이터를 보유하는 데이터 구조입니다. 벡터는 또한 데이터를 선형 방식으로 저장하지만 배열과 달리 크기가 고정되어 있지 않습니다. 대신 필요에 따라 크기를 늘릴 수 있습니다.

벡터 클래스는 AbstractList 클래스 및 구현 명부 .벡터를 사용하려면 먼저 java.util 패키지에서 Vector 클래스를 가져와야합니다.





import java.util.Vector

이 기사에서는 벡터의 다음 개념에 대해 설명합니다.



시작하자!

이점 자바의 Vector

  • 동적 크기를 갖는 속성은 크기를 모르는 경우 메모리 낭비를 방지하므로 매우 유용합니다. 데이터 구조 선언시.
  • 프로그램 중간에 데이터 구조의 크기를 변경하고 싶을 때 벡터가 매우 유용 할 수 있습니다.

동적 크기를 갖는 속성은 Java의 벡터에만 고유하지 않습니다. ArrayList로 알려진 다른 데이터 구조도 동적 크기를 갖는 속성을 보여줍니다. 그러나 벡터는 다음 두 가지 이유로 인해 ArrayList와 다릅니다.

C ++ goto 레이블
  • 첫째, 벡터는 동기화되어 비교하자면 데이터 손상의 위험이 있으므로 프로그램.
  • 둘째, 벡터에는 ArrayList가 아닌 벡터에서만 구현할 수있는 레거시 함수가 있습니다.

벡터의 요소에 액세스하는 방법

배열의 요소에 액세스하는 것처럼 요소의 인덱스를 사용하여 데이터 멤버에 액세스 할 수 있습니다.



예- 벡터 v의 세 번째 요소에 액세스하려면 간단히 v [3]이라고합니다.

벡터 생성자

다음은 벡터의 여러 변형입니다. 생성자 사용 가능 :

  1. 벡터 (int initialCapacity, int Increment) – 주어진 initialCapacity 및 크기 증가로 벡터를 구성합니다.
  2. 벡터 (int initialCapacity) - 주어진 initialCapacity로 빈 벡터를 생성합니다. 이 경우 Increment는 0입니다.
  3. 벡터() – 용량 10의 기본 벡터를 구성합니다.
  4. Vector (컬렉션 c) - 지정된 컬렉션으로 벡터를 생성합니다. 요소의 순서는 컬렉션의 반복자가 반환하는 순서와 동일합니다.

벡터에는 세 개의 보호 된 매개 변수도 있습니다.

  1. Int capacityIncrement ()- 크기가 용량보다 커지면 벡터의 용량이 자동으로 증가합니다.
  2. Int elementCount () – 벡터의 요소 수를 알려줍니다.
  3. Object [] elementData () – 벡터의 요소가 저장되는 배열

벡터 선언에서 가장 일반적인 오류

  • 벡터 던졌습니다 IllegalArgumentException 정의 된 벡터의 InitialSize가 음수 인 경우.
  • 지정된 컬렉션이 null 인 경우 NullPointerException

노트 :

  1. 벡터 증분을 지정하지 않으면 용량이모든 증분주기에서 두 배가됩니다.
  2. 벡터의 용량은 크기보다 작을 수 없으며 같을 수 있습니다.

벡터 생성자를 초기화하는 예를 살펴 보겠습니다.

예제 : 벡터 생성자 초기화

/ 벡터 생성자를 설명하는 Java 코드 import java.util. * public class Main {public static void main (String [] args) {// 기본 벡터 생성 Vector v1 = new Vector () // 주어진 크기의 벡터 생성 v2 = new Vector (20) // 주어진 크기와 증분 벡터 생성 v3 = new Vector (30,10) v2.add (100) v2.add (100) v2.add (100) // 주어진 벡터 생성 collection Vector v4 = new Vector (v2) System.out.println ( 'Vector v1 of capacity'+ v1.capacity ()) System.out.println ( 'Vector v2 of capacity'+ v2.capacity ()) System.out .println ( 'Vector v3 of capacity'+ v3.capacity ()) System.out.println ( 'Vector v4 of capacity'+ v4.capacity ())}

산출

생성자-자바 벡터-Edureka

벡터의 메모리 할당

지금까지 벡터는 고정 된 크기가 아니라 동적으로 크기를 변경할 수 있다는 것을 이해 했어야합니다. 벡터가 객체를 저장하기 위해 무기한 긴 공간을 할당한다고 생각할 수 있습니다. 그러나 이것은 사실이 아닙니다. 벡터는 'capacity'및 'capacityIncrement'두 필드에 따라 크기를 변경할 수 있습니다. 처음에는 벡터를 선언 할 때 'capacity'필드와 동일한 크기가 할당됩니다. 용량과 동일한 요소를 삽입 할 수 있습니다. 그러나 다음 요소가 삽입 되 자마자 배열의 크기가 'capacityIncrement'크기만큼 증가합니다. 따라서 동적으로 크기를 변경할 수 있습니다.

에 대한 기본 생성자 , 용량이 가득 차고 새 요소가 삽입 될 때마다 용량이 두 배가됩니다.

– InitialCapacity 5의 벡터가 있고 capacityIncrement 따라서 벡터의 초기 크기는 5 개 요소입니다.이 벡터에 5 개 요소를 하나씩 삽입합니다. 즉 1,2,3,4,5입니다. 벡터에 6이라는 다른 요소를 삽입하려고하면 벡터의 크기가 2만큼 증가합니다. 따라서 벡터의 크기는 이제 7입니다. 따라서 벡터는 no에 따라 크기를 쉽게 조정합니다. 요소의.

또 다른 흥미로운 점은 배열과 달리 벡터는 실제 객체를 포함하지 않고 객체에 대한 참조 만 포함한다는 것입니다. 따라서 서로 다른 데이터 유형의 객체를 동일한 벡터에 저장할 수 있습니다.

벡터의 방법

자주 사용되는 벡터 방법을 몇 가지 살펴 보겠습니다.

  • 부울 add (Object o) – 벡터 끝에 요소를 추가합니다.
// 부울 add () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (1 ) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // 목록 끝에 'is'추가 list v.add ( 'Fun') // 목록 끝에 'Fun'추가 System.out.println ( 'The vector is'+ v)}}

산출

  • 무효 추가 (int Index, E 요소) – 벡터의 지정된 인덱스에 지정된 요소를 추가합니다.
// void add () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (0 , 1) // 인덱스 0에 1 추가 v.add (1, 'Java') // 인덱스 1에 'Java'추가 v.add (2, 'is') // 인덱스에 'is'추가 2 v.add (3, 'Fun') // 인덱스 3에 'Fun'추가 v.add (4, '!!!') // 인덱스 4에 'Fun'추가 System.out.println ( ' 벡터는 '+ v)}}입니다.

산출

  • 부울 제거 (오브젝트 o) – 벡터의 주어진 인덱스에서 요소를 제거합니다.
// boolean remove () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (1 ) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // 목록 끝에 'is'추가 list v.add ( 'Fun') // 목록 끝에 'Fun'추가 System.out.println ( '제거 전 벡터'+ v) v.remove (1) System.out.println ( 'Vector after 제거 '+ v)}}

산출

  • 부울 removeElement ( 개체 obj) - 색인 번호가 아닌 이름 obj로 요소를 삭제합니다.
// removeElement () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (1) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // 목록 끝에 'is'추가 v.add ( 'Fun') // 목록 끝에 'Fun'추가 System.out.println ( 'Vector before removal'+ v) v.removeElement ( 'Java') System.out.println ( 'Vector 제거 후 '+ v)}}

산출

  • Int size () – 벡터의 크기를 반환합니다.
// size () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (0, 1) // 인덱스 0에 1 추가 v.add (1, 'Java') // 인덱스 1에 'Java'추가 v.add (2, 'is') // 인덱스 2에 'is'추가 v.add (3, 'Fun') // 인덱스 3에 'Fun'추가 System.out.println ( 'The vector size is'+ v.size ())}}

산출

  • Int Capacity () – 벡터의 용량을 반환합니다.
// capacity () 메소드를 보여주는 Java 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (0, 1) // 인덱스 0에 1 추가 v.add (1, 'Java') // 인덱스 1에 'Java'추가 v.add (2, 'is') // 인덱스 2에 'is'추가 v.add (3, 'Fun') // 인덱스 3에 'Fun'추가 System.out.println ( 'The vector capacity is'+ v.capacity ())}}

산출

  • 객체 get (int index) – 벡터의 주어진 위치에있는 요소를 반환합니다.
// get () 메소드를 보여주는 Java 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (1) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // 목록 끝에 'is'추가 v.add ( 'Fun') // 목록 끝에 'Fun'추가 System.out.println ( '인덱스 1의 요소는'+ v.get (1))}}

산출

  • 객체 firstElement () – 첫 번째 요소를 반환합니다.
// firstElement () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (1) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // 목록 끝에 'is'추가 v.add ( 'Fun') // 목록 끝에 'Fun'추가 System.out.println ( '첫 번째 요소는'+ v.firstElement ())}}

산출

  • 개체 lastElement ()- 마지막 요소를 반환합니다.
// lastElement () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (1) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // 목록 끝에 'is'추가 v.add ( 'Fun') // 목록 끝에 'Fun'추가 System.out.println ( 'The last element is'+ v.lastElement ())}}

산출

  • 부울 같음 (Object o) – 벡터와 지정된 객체가 같은지 비교합니다. 모든 요소가 해당 인덱스에서 참이면 참을 반환합니다.
// boolean equals () 메소드를 보여주는 Java 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터를 생성합니다. Vector vcopy = new Vector () v.add (1) // 목록 끝에 1 추가 v.add ( 'Java') // 목록 끝에 'Java'추가 v.add ( 'is') // ' is '목록 끝에 v.add ('Fun ') // 목록 끝에'Fun '추가 vcopy.add (0,1) // 인덱스 0에 1 추가 vcopy.add (1, 'Java') // 인덱스 1에 'Java'추가 vcopy.add (2, 'is') // 인덱스 2에 'is'추가 vcopy.add (3, 'Fun') // 'Fun'추가 인덱스 3에 vcopy.add (4, '!!!') // 인덱스 4에 'Fun'추가 if (v.equals (vcopy)) System.out.println ( '두 벡터가 같음') else System .out.println ( '벡터가 같지 않음')}}

산출

  • Void trimtosize () – 이 방법은 추가 용량을 제거하고 요소를 유지하기 위해 용량을 유지합니다.
// trimToSize () 메소드를 보여주는 자바 코드 import java.util. * public class Main {public static void main (String [] args) {Vector v = new Vector () // 기본 벡터 생성 v.add (0, 1) // 인덱스 0에 1 추가 v.add (1, 'Java') // 인덱스 1에 'Java'추가 v.add (2, 'is') // 인덱스 2에 'is'추가 v.add (3, 'Fun') // 인덱스 3에 'Fun'추가 System.out.println ( 'The vector capacity is'+ v.capacity ()) v.trimToSize () System.out.println ( '벡터 용량은'+ v.capacity ())}}

산출


기타 중요한 방법

지금 쯤이면 벡터로 작업하는 방법에 대한 좋은 아이디어를 얻었을 것입니다. 더 많은 벡터 방법을 탐색하려면 아래 표를 참조하십시오.

방법의 이름 방법의 기능

부울 isEmpty ()

요소의 존재 여부 확인

부울 포함 (Object o)

파이썬은 십진수를 이진으로 변환

특정 요소의 존재를 확인하는 데 사용됩니다.

int indexOf (객체 o)

요소 o의 인덱스를 반환합니다.

void removeRange (int s, int e)

s에서 시작하여 (e-1)로 끝나는 벡터에서 요소를 제거합니다.

무효 clear ()

모든 요소를 ​​제거합니다.

void ensureCapacity (int c)

용량을 c만큼 증가시킵니다.

void setSize (int s)

크기를 s로 설정합니다. s> 크기 인 경우 추가 용량은 null 값으로 채워집니다. 만약 s

개체 elementAt (int a)

인덱스 번호 a에있는 요소를 반환합니다.

개체 집합 (int a, 개체 o)

인덱스 a에있는 요소를 주어진 요소 o로 대체합니다.

Object [] toArray ()

벡터와 동일한 요소를 포함하는 배열을 반환합니다.

개체 clone ()

벡터 객체가 복사됩니다.

부울 addAll (컬렉션 c)

컬렉션 c의 모든 요소를 ​​벡터에 추가합니다.

부울 addAll (int a, 컬렉션 c)

Collection의 모든 요소를 ​​삽입합니다. c에서 지정된 인덱스 a에있는 벡터

Boolean preserveAll (컬렉션 c)

컬렉션 c에도 존재하는 벡터의 모든 요소를 ​​유지합니다.

목록 subList (int s, int e)

s에서 시작하여 벡터에서 (e-1)로 끝나는 요소를 List 객체로 반환합니다.

모든 좋은 일이 끝날 때마다 Vectors에 대한 블로그도 . 이 블로그에서 자바 벡터의 모든 측면을 다룰 수 있었고 벡터에 대한 지식을 수집 할 수 있었기를 바랍니다.

가능한 한 많이 연습하고 경험을 되 돌리십시오.

MySQL과 Java의 데이터베이스 연결

확인 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 이 자바 인터뷰 질문 외에도 자바 개발자가 되고자하는 학생과 전문가를 위해 설계된 커리큘럼을 마련했습니다.

질문이 있으십니까? 이 'Vectors in Java'의 주석 섹션에 언급하십시오. 기사와 우리는 가능한 한 빨리 당신에게 돌아갈 것입니다.