Какво е Vector в Java и как да го използваме?



Този блог за „Вектори в Java“ ще ви помогне да разберете как векторният клас се различава от ArrayList и ще ви помогне да научите за различните участващи методи.

Вектори в са една от най-често използваните структури от данни в света на програмирането.Всички знаем това Масиви са структури от данни, които съхраняват данните по линеен начин. Векторите също съхраняват данните по линеен начин, но за разлика от масивите, те нямат фиксиран размер. Вместо това размерът им може да се увеличи при поискване.

Vector class е дъщерна класа на AbstractList клас и изпълнява на Списък .За да използваме Vectors, първо трябва да импортираме Vector класа от пакета java.util:





импортиране на java.util.Vector

В тази статия ще обсъдим следните концепции за вектори:



Да започваме!

Предимство s на Vector в Java

  • Свойството да има динамичен размер е много полезно, тъй като избягва загубата на памет в случай, че не знаем размера на структура на данни по време на декларацията.
  • Когато искаме да променим размера на нашата структура от данни в средата на програма, векторите могат да се окажат много полезни.

Свойството да има динамичен размер не е уникално за Vectors в Java. Друга структура от данни, известна като ArrayList, също показва свойството да има динамичен размер. Векторите обаче са различни от ArrayLists поради няколко причини:

  • Първо, Векторите са синхронизирани, което му дава предимство пред в сравнение с програми, тъй като има рискове от повреда на данните.
  • На второ място, Векторите имат някои наследени функции, които могат да бъдат внедрени само върху вектори, а не в ArrayLists.

Как да получите достъп до елементи във вектор

Можем да осъществим достъп до членовете на данните просто като използваме индекса на елемента, точно както ние имаме достъп до елементите в Arrays.



Пример- Ако искаме да получим достъп до третия елемент във вектор v, ние просто го наричаме v [3].

Вектори Конструктори

По-долу са изброени множество варианти на вектор конструктори на разположение за използване:

  1. Вектор (int InitialCapacity, int Increment) - Конструира вектор с даден начален капацитет и неговото нарастване по размер.
  2. Вектор (int първоначален капацитет) - Конструира празен вектор с даден InitiCapacity. В този случай инкрементът е нула.
  3. Вектор () - Изгражда вектор по подразбиране на капацитет 10.
  4. Вектор (колекция в) - Изгражда вектор с дадена колекция, редът на елементите е същият като върнат от итератора на колекцията.

Има и три защитени параметъра във векторите

  1. Int capacityIncrement () - Той автоматично увеличава капацитета на вектора, когато размерът стане по-голям от капацитета.
  2. Int elementCount () - кажете броя на елементите във вектора
  3. Object [] elementData () - масив, в който се съхраняват елементи от вектор

Най-често срещаните грешки при деклариране на вектори

  • Vector хвърля IllegalArgumentException ако InitialSize на дефинирания вектор е отрицателен.
  • Ако посочената колекция е нула, тя хвърля NullPointerException

Забележка:

  1. Ако нарастването на вектора не е посочено, неговият капацитет ще бъдеудвоен във всеки цикъл на нарастване.
  2. Капацитетът на вектор не може да бъде под размера, той може да е равен на него.

Нека разгледаме пример за инициализиране на конструктори на вектори.

Пример: Инициализиране на векторни конструктори

/ Java код, илюстриращ Vector Constructors import java.util. * Public class Main {public static void main (String [] args) {// създаване на вектор по подразбиране Vector v1 = new Vector () // създаване на вектор с даден Size Vector v2 = нов вектор (20) // създаване на вектор с даден размер и увеличение на вектора v3 = нов вектор (30,10) v2.add (100) v2.add (100) v2.add (100) // създаване на вектор с даден колекция Vector v4 = нов Vector (v2) System.out.println ('Vector v1 на капацитета' + v1.capacity ()) System.out.println ('Vector v2 на капацитета' + v2.capacity ()) System.out .println ('Vector v3 на капацитета' + v3.capacity ()) System.out.println ('Vector v4 на капацитета' + v4.capacity ())}

Изход

Конструктори - Вектори в Java - Edureka

Разпределение на паметта на вектори

Досега трябва да сте разбрали, че векторите нямат фиксиран размер, вместо това те имат способността да променят динамично размера си. Някой може да си помисли, че векторите отделят неопределено дълго пространство за съхраняване на обекти. Но това не е така. Векторите могат да променят размера си въз основа на две полета ‘capacity’ и ‘capacityIncrement’. Първоначално се определя размер, равен на полето „капацитет“, когато се декларира вектор. Можем да вмъкнем елементите, равни на капацитета. Но веднага щом се вмъкне следващият елемент, той увеличава размера на масива с размер ‘capacityIncrement’. Следователно, той е в състояние да променя динамично размера си.

За конструктор по подразбиране , капацитетът се удвоява винаги, когато капацитетът е пълен и трябва да се вмъкне нов елемент.

Пример - Да предположим, че имаме вектор на InitialCapacity 5 и капацитет Увеличаване от 2. Така първоначалният размер на вектора е 5 елемента Вмъкваме 5 елемента в този вектор един по един, а именно 1,2,3,4,5. Когато се опитаме да вмъкнем друг елемент във вектора, а именно 6, размерът на вектора ще бъде увеличен с 2. Следователно размерът на вектора е 7. Така че векторът лесно регулира размера си според не. на елементи.

Друг интересен момент е, че за разлика от масивите, векторите не съдържат реални обекти, а само препратки към обектите. Следователно, той позволява да се съхраняват обекти от различни типове данни в един и същ вектор.

Методи във вектор

Нека да разгледаме няколко много често използвани векторни метода.

обърнете число в python
  • Булево добавяне (Обект o) - Той добавя елемент в края на вектора.
// Java код, показващ булев метод add () import java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Той създава вектор по подразбиране v.add (1 ) // Добавя 1 в края на списъка v.add ('Java') // Добавя 'Java' в края на списъка v.add ('е') // Добавя 'е' в края на list v.add ('Fun') // Добавя 'Fun' в края на списъка System.out.println ('Векторът е' + v)}}

Изход

  • Добавяне на празнота (индекс int, Е елемент) - Той добавя дадения елемент при посочения индекс във вектора
// Java код, показващ метод void add () импортиране java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Той създава вектор по подразбиране v.add (0 , 1) // Добавя 1 при индекса 0 v.add (1, 'Java') // Добавя 'Java' при индекса 1 v.add (2, 'е') // Добавя 'е' при индекса 2 v.add (3, 'Fun') // Добавя 'Fun' в индекса 3 v.add (4, '!!!') // Добавя 'Fun' в индекса 4 System.out.println (' Векторът е '+ v)}}

Изход

  • Булево премахване (обект o) - Той премахва премахването на елемента при дадения индекс във вектора
// Java код, показващ булев метод 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 ('е') // Добавя 'е' в края на list v.add ('Fun') // Добавя 'Fun' в края на списъка System.out.println ('Vector before remove' + v) v.remove (1) System.out.println ('Vector after премахване '+ v)}}

Изход

  • Булево премахване на елемент ( Обект обект) - Той изтрива елемента с името му obj (не по номер на индекс)
// Java код, показващ метода removeElement () импортиране java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Той създава вектор по подразбиране v.add (1) // Добавя 1 в края на списъка v.add ('Java') // Добавя 'Java' в края на списъка v.add ('е') // Добавя 'е' в края на списъка v.add ('Fun') // Добавя 'Fun' в края на списъка System.out.println ('Вектор преди премахване' + v) v.removeElement ('Java') System.out.println ('Vector след премахване '+ v)}}

Изход

  • Int размер () - Той връща размера на вектора.
// Java код, показващ метод size () импортиране java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Създава вектор по подразбиране v.add (0, 1) // Добавя 1 при индекс 0 v.add (1, 'Java') // Добавя 'Java' при индекс 1 v.add (2, 'е') // Добавя 'е' при индекс 2 v.add (3, 'Fun') // Добавя 'Fun' към индекс 3 System.out.println ('Векторът е' + v.size ())}}

Изход

  • Вътрешен капацитет () - Той връща капацитета на вектора
// Java код, показващ метод на капацитет () импортиране java.util. * Публичен клас Main {публична статична пустота main (String [] args) {Vector v = new Vector () // Създава вектор по подразбиране v.add (0, 1) // Добавя 1 при индекс 0 v.add (1, 'Java') // Добавя 'Java' при индекс 1 v.add (2, 'е') // Добавя 'е' при индекс 2 v.add (3, 'Fun') // Добавя 'Fun' в индекс 3 System.out.println ('Капацитетът на вектора е' + v.capacity ())}}

Изход

  • Object get (int index) - Той връща елемента в дадената позиция във вектора
// Java код, показващ метод get () импортиране java.util. * Публичен клас Main {публична статична пустота main (String [] args) {Vector v = new Vector () // Създава вектор по подразбиране v.add (1) // Добавя 1 в края на списъка v.add ('Java') // Добавя 'Java' в края на списъка v.add ('е') // Добавя 'е' в края на списъка v.add ('Забавление') // Добавя 'Забавление' в края на списъка System.out.println ('Елементът в индекс 1 е' + v.get (1))}}

Изход

  • Обект firstElement () - Той връща първия елемент
// Java код, показващ метода firstElement () импортиране java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Създава вектор по подразбиране v.add (1) // Добавя 1 в края на списъка v.add ('Java') // Добавя 'Java' в края на списъка v.add ('е') // Добавя 'е' в края на списъка v.add ('Fun') // Добавя 'Fun' в края на списъка System.out.println ('Първият елемент е' + v.firstElement ())}}

Изход

  • Обект lastElement () - Той връща последния елемент
// Java код, показващ метода lastElement () импортиране java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Създава вектор по подразбиране v.add (1) // Добавя 1 в края на списъка v.add ('Java') // Добавя 'Java' в края на списъка v.add ('е') // Добавя 'е' в края на списъка v.add ('Fun') // Добавя 'Fun' в края на списъка System.out.println ('Последният елемент е' + v.lastElement ())}}

Изход

  • Булево равно (Обект o) - Той сравнява вектора с посочения обект за равенство. Връща true, ако всички елементи са true при съответните им индекси
// Java код, показващ метод boolean equals () 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 ('е') // Добавя ' е 'в края на списъка v.add (' Fun ') // Добавя' Fun 'в края на списъка vcopy.add (0,1) // Добавя 1 в индекса 0 vcopy.add (1, 'Java') // Добавя 'Java' при индекс 1 vcopy.add (2, 'е') // Добавя 'е' при индекс 2 vcopy.add (3, 'Забавление') // Добавя 'Забавление' при индекс 3 vcopy.add (4, '!!!') // Добавя 'Забавление' при индекс 4, ако (v.equals (vcopy)) System.out.println ('И двата вектора са равни') else Система .out.println ('Векторите не са равни')}}

Изход

  • Trimtosize на void () - Този метод премахва допълнителния капацитет и запазва капацитета само за задържане на елементите, т.е. равен на размера
// Java код, показващ trimToSize () метод импортиране java.util. * Публичен клас Main {public static void main (String [] args) {Vector v = new Vector () // Той създава вектор по подразбиране v.add (0, 1) // Добавя 1 при индекс 0 v.add (1, 'Java') // Добавя 'Java' при индекс 1 v.add (2, 'е') // Добавя 'е' при индекс 2 v.add (3, 'Fun') // Добавя 'Fun' при индекс 3 System.out.println ('Капацитетът на вектора е' + v.capacity ()) v.trimToSize () System.out.println ( 'Капацитетът на вектора е' + v.capacity ())}}

Изход


Други важни методи

Досега трябва да сте имали добра идея как да работите с вектори. Ако искате да изследвате повече от векторните методи, погледнете таблицата по-долу.

Име на метода Функция на метода

Логически isEmpty ()

проверява дали елементи съществуват или не

Булево съдържа (Обект o)

използва се за проверка на съществуването на определен елемент, да речем o

int indexOf (Обект o)

Той връща индекса на елемента o

void removeRange (int s, int e)

премахва елементи от вектора, започващи от s и завършващи с (e-1)

празно ясно ()

премахва всички елементи

void secureCapacity (int c)

Увеличава капацитета с c

void setSize (int s)

Той задава размера на s. Ако s> size, допълнителният капацитет се запълва с нулеви стойности. Ако s

Object elementAt (int a)

връща съществуващия елемент с номер на индекс a

Набор обекти (int a, Object o)

замества елемента, присъстващ в индекса a, с дадения елемент o

Обект [] към масив ()

как да генерирам произволен низ в java -

връща масив, съдържащ същите елементи като вектора

Клон на обект ()

Копира се векторният обект

Boolean addAll (Колекция c)

добавя всички елементи от Collection c към вектора

Булево addAll (int a, колекция c)

вмъква всички елементи на Collection c към вектора при посочения индекс a

Boolean retainAll (Колекция c)

запазва всички елементи във вектора, които също съществуват в колекция c

Подлист на списъка (int s, int e)

връща елементите като списъчен обект, започвайки от s и завършвайки с (e-1) от вектора.

Тъй като всяко добро нещо приключва, така свършва и нашият блог за Вектори в . Надяваме се, че успяхме да обхванем всички аспекти на java векторите в този блог и вие успяхте да съберете известни знания относно векторите.

Уверете се, че практикувате възможно най-много и връщате опита си.

Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Ние сме тук, за да ви помогнем във всяка стъпка по вашето пътуване, за да станете освен тези въпроси за интервю за Java, измислим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат разработчик на Java.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този „Вектори в Java“ статия и ние ще се свържем с вас възможно най-скоро.