what is java vector java vector class tutorial with examples
Този урок обяснява всичко за структурата на векторни данни в Java с примери. Ще се научите да създавате, инициирате, сортирате и използвате Java Vector във вашите програми:
Векторът може да бъде дефиниран като динамичен масив, който може да расте или да се свива самостоятелно, т.е.
Това поведение е различно от това на масивите, които са статични. Но подобно на масивите, векторните елементи могат да бъдат достъпни с помощта на целочислени индекси.
=> Проверете тук, за да видите A-Z на уроците за обучение по Java тук.
Векторът може да се разглежда като подобен на друга динамична структура от масиви данни, ArrayList с изключение на двете разлики по-долу:
- Векторът се синхронизира, т.е.
- Класът вектор има много методи, които не са част от рамката на колекциите, а неговите наследени методи.
Какво ще научите:
Java Vector Class
Класът Vector е отделно от „ java.util ”И изпълнява списъчен интерфейс. Вектор е масив от обекти или вектор от обекти.
Декларация за клас на клас Vector е дадена по-долу:
public class Vector extends Object implements List, Cloneable, Serializable
Както е показано по-горе, клас Vector се разширява „ java.lang.object ”И изпълнява интерфейси List, Cloneable и Serializable.
Как да създам вектор в Java?
Можете да създадете обект Vector, като използвате някой от следните методи за конструктор Vector.
java 8 нови функции въпроси за интервю
Прототип на конструктора | Описание | |
---|---|---|
Ясно | Отпадна ясно () | Изчиства вектора на неговите елементи. |
вектор () | Това е конструкторът по подразбиране за класа Vector. Създава празен вектор с размер 10. | |
вектор (int първоначален капацитет) | Този претоварен конструктор конструира празен Vector обект с capacity = InitialCapacity. | |
вектор (int InitialCapacity, int capacityIncrement) | Този метод на конструктор създава празен вектор на обект с посочени InitiCapacity и capacityIncrement. | |
Вектор (колекция в) | Обект Vector се създава с началните елементи от посочена колекция c. |
Нека разгледаме всеки от конструкторите, за да инициализираме векторни обекти.
Инициализирайте Vector
(i) вектор ()
Това е конструкторът по подразбиране за класа Vector. Когато извикате този конструктор, се създава вектор обект с размер по подразбиране 10.
Общият синтаксис на този метод е:
Обект вектор = нов вектор ();
Например,
Vector vec1 = new Vector ();
Горното изявление създава нов Vector ‘vec1’ с размер 10.
(ii) Vector (int originalCapacity)
Претовареният конструктор на класа Vector приема за аргумент ‘InitiCapacity’. Този конструктор създава Vector обект с посочения капацитет.
Общият синтаксис на метода е:
Обект вектор = нов вектор (първоначален капацитет);
Например,
Vector vec1 = new Vector (10);
Горното изявление за програмиране ще създаде векторен обект ‘vec1’ с капацитет 10, т.е. този вектор може да съхранява до 10 елемента.
(iii) Вектор (int InitiCapacity, int capacityIncrement)
Това е поредният претоварен конструктор от клас Vector и той създава Vector обект с посочения първоначален капацитет и увеличение за капацитета.
Общият синтаксис за този метод е:
Обект вектор = нов вектор (InitiCapacity, capacityIncrement);
Например,
Vector vec1 = new Vector(5,10);
В горното изявление първоначалният капацитет на вектора е 5, а нарастването е 10. Това означава, когато 6тиелемент се вмъква във вектора, капацитетът на вектора ще бъде увеличен до 15 (5 + 10). По същия начин, когато 16тиелемент се вмъква, капацитетът на вектора на вектора ще бъде увеличен до 25 (15 +10).
(iv) Вектор (колекция в)
Последният претоварен конструктор от класа Vector приема като аргумент предварително дефинирана колекция и създава Vector с всички елементи от тази колекция като нейни елементи.
Общият синтаксис е:
Обект вектор = нов вектор (колекция c);
Например,
Vector vec1 = new Vector(aList); where aList = {1,2,3,4,5};
Горното изявление ще създаде Vector ‘vec1’ с начални елементи като {1,2,3,4, 5}.
Имайки предвид всички тези описания, ще ни позволи да внедрим програма Vector, за да разберем по-добре тези конструктори.
Векторни методи в Java
Следват методите, които се поддържат от клас Vector в Java.
Име на метода | Прототип | Описание |
---|---|---|
добавете | Булево добавяне (E e) | Добавя даден елемент в края на вектора. |
Добавяне на празнота (индекс int, Е елемент) | Добавете елемент към вектора при посочения индекс. | |
добави Всички | Boolean addAll (Колекция c) | Добавя всички елементи от дадена колекция до края на вектора. |
Булево addAll (индекс int, колекция c) | Добавя всички елементи в посочената колекция при посочен индекс. | |
addElement | void addElement (E obj) | Добавя посочения елемент в края на вектора, като увеличава размера на вектора. |
Капацитет | Вътрешен капацитет () | Връща текущия капацитет на вектора. |
Клониране | Клон на обект () | Клонира вектора. |
Съдържа | Булево съдържа (Обект o) | Проверява дали векторът съдържа посочен елемент. |
съдържаВсички | Булево съдържа All (Колекция c) | Проверява дали векторът съдържа всички елементи, налични в дадена колекция. |
copyInto | Void copyInto (Object () anArray) | Копира векторните елементи в даден масив. |
ElementAt | E ElementAt (индекс int) | Връща векторния елемент при посочен индекс. |
Елементи | Изброяване на елементи () | Връща изброените компоненти за вектора. |
осигурете капацитет | Void secureCapacity (int minCapacity) | Увеличава капацитета на вектора, за да отговаря на посочения минимален капацитет. |
Име на метода | Прототип | Описание |
---|---|---|
insertElementAt | Void insertElementAt (E obj, индекс int) | Вмъква дадения обект във вектора при дадения индекс. |
Равно на | Булево равно (Обект o) | Сравнява текущия вектор с посочения вектор, за да провери дали са равни. |
firstElement | E firstElement () | Връща първия елемент на вектора при индекс 0. |
Вземете | E get (индекс int) | Връща елемента във вектора при посочения индекс. |
хеш код | int hashCode () | Връща стойността на хеш кода за вектора. |
индекс на | int indexOf (Обект o) | намира индекса на първото появяване на дадения елемент във вектора; -1, ако елементът не присъства във вектора. |
int indexOf (Обект o, индекс int) | Търси вектора от дадения индекс в посока напред за посочен елемент; връща индекс, ако елементът е намерен иначе -1, ако елементът не е намерен. | |
празно е | Логически isEmpty () | Проверява дали векторът е празен. |
Итератор | Итератортератор () | Връща итератор, който се използва за обхождане на елементите на вектора. |
lastElement | E lastElement () | Връща последния елемент от вектора. |
lastIndexOf | Int lastIndexOf (Обект o) | Търси вектора за последното появяване на даден елемент и връща индекса или връща -1 елементът не е намерен. |
Int lastIndexOf (Обект o, индекс int) | Започва търсене на последното появяване на дадения елемент от дадения индекс назад. Връща индекса, ако е намерен елемент, иначе връща -1. | |
listIterator | ListIteratorlistIterator() | Връща итератор на списък върху векторните елементи. |
ListIteratorlistIterator(int index) | Връща итератор на списък върху векторните елементи, започвайки от дадения индекс. |
Име на метода | Прототип | Описание |
---|---|---|
removeRange | защитена пустота removeRange (int отIndex, int toIndex) | Изтрива всички елементи от вектора в дадения диапазон от fromIndex (включително), totoIndex (изключително). |
Премахване | E премахване (индекс int) | Изтрива елемента при даден индекс от вектора. |
Булево премахване (Обект o) | Изтрива първото появяване на дадения елемент от вектора. Ако елементът не присъства, нищо не се случва с вектора | |
премахнете всички | Булево премахване на всички (Колекция в) | Изтрива всички елементи от вектора, които присъстват в дадената колекция. |
void removeAll Elements () | Изтрива всички векторни елементи, като по този начин го намалява до нула. | |
removeElement | Булево премахване на елемент (обект на обект) | Премахва първата поява на дадения елемент от вектора. |
void removeElementAt (индекс int) | Изтрива елемента при дадения индекс. | |
retainAll | Boolean retainAll (Колекция c) | За разлика от ‘removeAll’ методът retainAll запазва елементи във вектора, които съответстват на елементи в определена колекция. |
комплект | E набор (индекс int, Е елемент) | Задава стойността при даден индекс с предоставения нов елемент. |
Void set ElementAt (E obj, int index) | Задава дадените елементи в дадения индекс. | |
setSize | Void setSize (int newSize) | Задава зададен размер за този вектор. |
Размер | размер int () | Връща броя на елементите в този вектор или дължината на вектора. |
подлист | ListsubList (intfromIndex, inttoIndex) | Връща изглед или подсписък на вектора, вариращ от Индекс до Индекс. |
toArray | Обект () към масив () | Преобразува дадения вектор в масив, съдържащ всички векторни елементи в даден ред. |
T () доArray (T () a) | Връща масив от указан тип, съдържащ всички векторни елементи. | |
toString | String toString () | Връща низово представяне на вектора. |
trimToSize | void trimToSize () | Подрязва вектора, за да побере текущия размер. |
Внедряване на вектор
Следващата Java програма демонстрира използването на всички методи на конструктор, описани по-горе.
import java.util.*; public class Main{ public static void main(String() args) { //Create vectors v1, v2,v3 and v4 Vector v1 = new Vector(); //a vector with default constructor Vector v2 = new Vector(20); // a vector of given Size //initialize vector v2 with values v2.add(10); v2.add(20); v2.add(30); Vector v3 = new Vector(30, 10); // a vector of given Size and Increment // create a vector v4 with given collection List aList = new ArrayList(); aList.add('one'); aList.add('two'); Vector v4 = new Vector(aList); //print contents of each vector System.out.println('Vector v1 Contents:' + v1); System.out.println('Vector v2 Contents:' + v2); System.out.println('Vector v3 Contents:' + v3); System.out.println('Vector v4 Contents:' + v4); } }
Изход:
Горната програма има четири Вектора в нея. Първият v1 се създава с конструктор по подразбиране. Вторият Vector v2 се създава с първоначален капацитет като 20. Тогава малко елементи се добавят към v2. Третият вектор се създава с първоначален капацитет 30 и увеличение 10.
След това създаваме ArrayList и създаваме четвърти Vector v4 с ArrayList като негов аргумент. Накрая показваме съдържанието на всеки от тези Вектори.
Обърнете внимание на съдържанието на четвъртия Vector v4. Тъй като сме предоставили ArrayList като свой аргумент, съдържанието на ArrayList става съдържанието на v4.
Пълен вектор пример
Сега нека приложим още една програма, която ще го направи демонстрират създаването на вектори, добавяне на елементи към него и показване на съдържанието му.
import java.util.*; public class Main { public static void main(String args()) { //Create an empty Vector of even numbers Vector evenVector= new Vector (); //Add elements in the vector evenVector.add(2); evenVector.add(4); evenVector.add(6); evenVector.add(8); evenVector.add(10); evenVector.add(12); evenVector.add(14); evenVector.add(16); //Display the vector System.out.println('Vector evenVector contents: ' +evenVector); //delete the first occurence of an element 4 using remove method System.out.println('
Firstoccurence of element 4 removed: '+evenVector.remove((Integer)4)); //Display the vector System.out.println('
Vector contents after remove operation: ' +evenVector); //Remove the element at index 4 & display the vector System.out.println('
Remove element at index 4: ' +evenVector.remove(4)); System.out.println('
Vector contents after remove: ' +evenVector); //hashcode for the vector System.out.println('
Hash code of the vector = '+evenVector.hashCode()); //Get the element at index 1 System.out.println('
Element at index 1 is = '+evenVector.get(1)); } }
Изход:
Да вземем друг векторен пример. В тази програма ще го направим използвайте низ низ . Ние манипулираме този вектор, като добавяме елементи и след това отпечатваме неговия размер и капацитет.
import java.util.*; public class Main { public static void main(String args()) { // create a vector with initial capacity = 2 Vector fruits_vec = new Vector(2); //add elements to the vector fruits_vec.addElement('Grapes'); fruits_vec.addElement('Melon'); fruits_vec.addElement('Kiwi'); fruits_vec.addElement('Apple'); //print current size and capacity of the vector System.out.println('Vector Size: '+fruits_vec.size()); System.out.println('Default Vector capacity increment: '+fruits_vec.capacity()); //add more elements to the vector fruits_vec.addElement('Orange'); fruits_vec.addElement('Mango'); fruits_vec.addElement('Fig'); //print current size and capacity again System.out.println('Vector Size after addition: '+fruits_vec.size()); System.out.println('Vector Capacity after increment: '+fruits_vec.capacity()); //print vector elements Enumeration fruits_enum = fruits_vec.elements(); System.out.println('
Vector Elements are:'); while(fruits_enum.hasMoreElements()) System.out.print(fruits_enum.nextElement() + ' '); } }
Изход:
Сортирай вектор
Можете също да сортирате вектор според определен ред. За сортиране на вектор трябва да използвате метода Collections.sort () на Java Collections Framework.
Следващият пример показва векторно сортиране.
import java.util.*; public class Main { public static void main(String arg()) { //Create an empty vector Vector oddVector = new Vector(); //Add elements to the vector oddVector.add(1); oddVector.add(11); oddVector.add(7); oddVector.add(3); oddVector.add(5); //print the vector elements System.out.println('Vector elements: '+oddVector); //sort vector using Collections.sort method Collections.sort(oddVector); //print sorted vector System.out.println('Vector elements after sorting: '+oddVector); } }
Изход:
Горната програма създава вектор на нечетни числа. След това, използвайки метода Collections.sort (), Векторът се сортира.
2D (двуизмерен) вектор
2d вектор е вектор, който има всеки от елементите си като вектор. Може да се нарече и „вектор на вектори“.
Пример по-долу демонстрира 2d вектор.
import java.util.*; public class Main { public static void main(String args()) { //define and initialize a vector Vector inner_vec = new Vector(); inner_vec.add('Software'); inner_vec.add('Testing'); inner_vec.add('Java'); inner_vec.add('Tutorials'); //define another vector and add first vector to it. Vector outer_vec = new Vector(); outer_vec.add(inner_vec); String str; //display the contents of vector of vectors System.out.println('Contents of vector of vectors:'); for(int i=0;i Изход:

В горната програма имаме вектор от четири елемента. След това декларираме друг вектор и добавяме предишния вектор като елемент към втория вектор. Обърнете внимание на начина на достъп до елементите на вектора. Формирайте цикъла for, можете да заключите, че първият елемент на външния вектор (с индекс 0) е първият или вътрешният вектор.
По този начин, в цикъла, ние поддържаме индекса на външния вектор като 0 и се движим през вътрешния вектор, за да покажем всички елементи.
Преобразуване на вектор в масив
Нека разгледаме следния пример за преобразуване на вектор в масив. За да конвертираме вектор в масив, използваме метода ‘toArray’ от класа Vector.
В следващия пример за програмиране , декларираме низ Vector и добавяме елементи към него. След това, използвайки метода toArray на класа Vector, ние преобразуваме вектора в масив String, като подаваме обекта на масив низ като аргумент.
import java.util.Vector; public class Main { public static void main(String() args) { // Create a Vector of String elements Vector color_vector = new Vector(); // Add elements to Vector color_vector.add('Violet'); color_vector.add('Indigo'); color_vector.add('Blue'); color_vector.add('Green'); color_vector.add('Yellow'); color_vector.add('Orange'); color_vector.add('Red'); //Convert Vector to String Array using toArray method String() colorsArray = color_vector.toArray(new String(color_vector.size())); //print Array Elements System.out.println('String Array Elements :'); for(String val:colorsArray){ System.out.print(val + ' '); } } }
Изход:
как да видите xml файл

Вектор срещу масив
По-долу са изброени някои от разликите между вектор и масив.
Вектор Масив Запазва допълнително място за съхранение при увеличаване на капацитета. Не запазва допълнително място за съхранение. Векторът е динамичен и размерът му нараства и се свива при добавяне или премахване на елементи. Масивите са статични и размерът му остава фиксиран, след като бъде деклариран. Векторите могат да съхраняват само обекти. Масивите могат да съхраняват примитивни типове, както и обекти. Той осигурява метод size () за определяне на размера. Предоставя свойство за дължина за определяне на дължината. Няма концептуални размери, но могат да бъдат създадени като вектор на вектори, обикновено наричан 2d вектор. Масивите поддържат размери. Векторът се синхронизира. Масивът не е синхронизиран. Vector е по-бавен от масива. Масивът е по-бърз. Осигурява безопасност на типа, като поддържа генерични лекарства. Няма обща поддръжка.
Вектор срещу ArrayList
Този раздел обсъжда разликата между Vector и ArrayList в Java.
Вектор ArrayList Векторът има размер на увеличение, използвайки кой размер на вектора може да бъде увеличен. ArrayList не предоставя размер на увеличение. Присъства от първоначалната версия на Java (версия JDK 1.0). Въведено в Java от JDK 1.2 Vector е наследствен клас на Java. ArrayList е част от рамката на Java Collections. Векторът се удвоява по размер, когато се достигне капацитетът му. ArrayList нараства наполовина от размера, когато се достигне капацитетът му. Векторните методи се синхронизират. ArrayList не се синхронизира. Vector използва Enumerator и Iterator за обхождане. ArrayList използва само Iterator. Векторните операции са по-бавни. ArrayList е по-бърз. Vector е безопасен за нишки, което означава, че използването на Vector от множество нишки е разрешено и е безопасно. ArrayList не е безопасен за нишки.
често задавани въпроси
В # 1) Какво е вектор в Java?
Отговор: В Java Vector може да бъде дефиниран като масив от обекти, които могат да се размножават. Подобно на масивите, векторните елементи също могат да бъдат достъпни с помощта на индекси.
В # 2) Подрежда ли се вектор в Java?
Отговор: Да. Подрежда се Vector и поддържа реда за вмъкване на елементи.
В # 3) Безопасен ли е Vector поток в Java?
Отговор: Да. В Java класът Vector е безопасен за нишки. Тъй като класът Vector е синхронизиран, той го прави безопасен за нишки, т.е. можете да използвате класа Vector от множество нишки и той е безопасен.
В # 4) Защо използваме вектор в Java?
Отговор: Най-важната причина, поради която Vector се използва в Java, е, че Vector расте и се свива автоматично. Те са динамични, поради което са предпочитани пред масивите.
В # 5) Кое е по-добро - ArrayList или вектор?
Отговор: По отношение на производителността ArrayList е по-бърз в сравнение с Vector, тъй като Vector се синхронизира и го прави по-бавен.
Заключение
В този урок започнахме със структурата на данните Vector в Java. Векторите са почти подобни на масив, в който елементите Vector са достъпни с помощта на познати индекси. Векторите се наричат динамичен масив и за разлика от масивите, размерът на вектора нараства и се свива автоматично.
Векторите също имат функции за капацитет и увеличение, които могат да се използват за създаване и резервиране на допълнително хранилище за бъдещи допълнения. Vector е наследствен клас в пакета java.util на Java и е синхронизиран, както и безопасен за нишки.
По този начин би трябвало да предпочитаме вектори, когато се нуждаем от динамичен размер, а също и докато работим в среда с много нишки.
=> Посетете тук за ексклузивната серия уроци за обучение по Java.
Препоръчително четене
- Урок за JAVA за начинаещи: 100+ практически ръководства за Java видео
- Урок за отражение на Java с примери
- Урок за интерфейс на Java и абстрактен клас с примери
- Назъбен масив в Java - урок с примери
- Урок за дължина на масив Java с примери за кодове
- Как да сортираме масив в Java - Урок с примери
- Java 'this' Ключова дума: Урок с примери за кодове
- Модификатори на достъп в Java - Урок с примери