what is java vector java vector class tutorial with examples
Цей посібник на прикладах пояснює все про структуру векторних даних у Java. Ви навчитеся створювати, ініціювати, сортувати та використовувати вектор Java у своїх програмах:
Вектор можна визначити як динамічний масив, який може рости або стискатися самостійно, тобто вектор буде рости, коли до нього буде додано більше елементів, і зменшуватиметься, коли елементи будуть видалятися з нього.
Така поведінка на відміну від масивів, які є статичними. Але подібно до масивів, до векторних елементів можна отримати доступ за допомогою цілочисельних індексів.
=> Познайомтесь тут, щоб побачити A-Z підручників із навчання Java тут.
Вектор можна розглядати як подібний до іншої структури даних динамічного масиву, ArrayList, за винятком двох нижченаведених відмінностей:
- Вектор синхронізований, тобто всі методи у Vector позначені як «синхронізовані», і, як тільки метод викликається, той самий метод не може бути викликаний, якщо попередній виклик не закінчився.
- Клас вектор має багато методів, які не є частиною фреймворку колекцій, а є його застарілими методами.
Що ви дізнаєтесь:
Java-клас вектор
Клас Vector - це окрім “ java.util ”І реалізує інтерфейс List. Вектор - це масив об’єктів або вектор об’єктів.
Декларація класу класу Vector наведена нижче:
public class Vector extends Object implements List, Cloneable, Serializable
Як показано вище, клас Vector розширює “ java.lang.object ”Та реалізує інтерфейси List, Cloneable та Serializable.
Як створити вектор у Java?
Ви можете створити векторний об'єкт, використовуючи будь-який з наступних методів конструктора вектора.
c ++ список суміжності неорієнтований графік
Прототип конструктора | Опис | |
---|---|---|
Ясно | Порожнеча очищена () | Очищає вектор його елементів. |
вектор () | Це конструктор за замовчуванням для класу Vector. Він створює порожній вектор розміром 10. | |
вектор (int InitialCapacity) | Цей перевантажений конструктор створює порожній векторний об'єкт з ємністю = InitialCapacity. | |
вектор (int InitialCapacity, int capacityIncrement) | Цей метод конструктора створює порожній векторний об'єкт із зазначеними InitiCapacity та capacityIncrement. | |
Вектор (колекція c) | Об'єкт Vector створюється з початковими елементами із зазначеної колекції c. |
Давайте розглянемо кожен з конструкторів для ініціалізації об’єктів Vector.
Ініціалізувати вектор
(i) Вектор ()
Це конструктор за замовчуванням для класу Vector. Коли ви викликаєте цей конструктор, створюється векторний об'єкт розміром за замовчуванням 10.
Загальний синтаксис цього методу:
Векторний об'єкт = new Vector ();
Наприклад,
Vector vec1 = new Vector ();
Вищезазначене твердження створює новий Vector „vec1“ розміром 10.
(ii) Вектор (int початкова ємність)
Перевантажений конструктор класу Vector приймає в якості аргументу функцію «InitiCapacity». Цей конструктор створює векторний об'єкт із заданою ємністю.
Загальний синтаксис методу:
Об'єкт вектора = новий вектор (початковамісткість);
Наприклад,
Vector vec1 = new Vector (10);
Наведений вище оператор програмування створить векторний об'єкт 'vec1' ємністю 10, тобто цей вектор може зберігати до 10 елементів.
(iii) Вектор (int originalCapacity, int capacityIncrement)
Це ще один перевантажений конструктор класу Vector, який створює векторний об'єкт із заданою початковою ємністю та приростом ємності.
Загальний синтаксис цього методу:
Об'єкт вектора = новий вектор (початковамісткість, збільшення ємності);
Наприклад,
Vector vec1 = new Vector(5,10);
У наведеному вище твердженні початкова ємність вектора дорівнює 5, а приріст - 10. Це означає, коли 6гоелемент вставляється у вектор, ємність вектора буде збільшена до 15 (5 + 10). Подібним чином, коли 16говставлений елемент, місткість вектора вектора буде збільшена до 25 (15 +10).
(iv) Вектор (колекція c)
Останній перевантажений конструктор класу 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, елемент Е) | Додайте елемент до вектора за вказаним індексом. | |
addAll | Логічне addAll (колекція c) | Додає всі елементи з даної колекції до кінця вектора. |
Логічне addAll (індекс int, колекція c) | Додає всі елементи у вказаній колекції за вказаним індексом. | |
addElement | void addElement (E obj) | Додає вказаний елемент в кінці вектора, збільшуючи розмір вектора. |
Ємність | Внутрішня ємність () | Повертає поточну ємність вектора. |
Клон | Клон об'єкта () | Клонує вектор. |
Містить | Логічне містить (Об'єкт o) | Перевіряє, чи вектор містить вказаний елемент. |
містить усі | Логічне containsAll (Колекція c) | Перевіряє, чи містить вектор всі елементи, присутні в даній колекції. |
copyInto | Void copyInto (Object () anArray) | Копіює векторні елементи у заданий масив. |
ElementAt | E ElementAt (індекс int) | Повертає векторний елемент за вказаним індексом. |
Елементи | Перерахування елементів () | Повертає перераховані компоненти для вектора. |
provideCapacity | Void secureCapacity (int minCapacity) | Збільшує ємність вектора, щоб задовольнити мінімальну задану ємність. |
Назва методу | Прототип | Опис |
---|---|---|
insertElementAt | Void insertElementAt (E obj, індекс int) | Вставляє даний об'єкт у вектор із заданим індексом. |
Дорівнює | Логічне дорівнює (Об'єкт o) | Порівнює поточний вектор із заданим вектором, щоб перевірити, чи рівні вони. |
firstElement | E firstElement () | Повертає перший елемент вектора з індексом 0. |
Отримати | E get (індекс int) | Повертає елемент у векторі за вказаним індексом. |
hashCode | int hashCode () | Повертає значення хеш-коду для вектора. |
indexOf | 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) | Повертає ітератор списку над векторними елементами, починаючи з заданого індексу. |
Назва методу | Прототип | Опис |
---|---|---|
removeRange | захищена порожнеча removeRange (int fromIndex, int toIndex) | Видаляє всі елементи з вектора в заданому діапазоні відIndex (включно), totoIndex (ексклюзивно). |
Видалити | E видалити (індекс int) | Видаляє елемент із заданого індексу з вектора. |
Логічне видалення (Об'єкт o) | Видаляє перше входження даного елемента з вектора. Якщо елемента немає, з вектором нічого не відбувається | |
видалити все | Логічне removeAll (колекція c) | Видаляє всі елементи з вектора, присутні в даній колекції. |
void removeAll Elements () | Видаляє всі векторні елементи, таким чином зменшуючи їх до нульового розміру. | |
removeElement | Логічне видалення елемента (об'єкт obj) | Видаляє перше входження даного елемента з вектора. |
void removeElementAt (індекс int) | Видаляє елемент із заданим індексом. | |
retainAll | Boolean retainAll (Колекція c) | На відміну від 'removeAll', метод retainAll зберігає елементи у векторі, які відповідають елементам у вказаній колекції. |
встановити | E набір (індекс int, елемент E) | Встановлює значення за заданим індексом разом із новим наданим елементом. |
Порожній набір ElementAt (E obj, індекс int) | Встановлює дані елементи за вказаним індексом. | |
setSize | Void setSize (int newSize) | Встановлює заданий розмір для цього вектора. |
Розмір | розмір int () | Повертає кількість елементів у цьому векторі або довжину вектора. |
підсписок | ListsubList (intfromIndex, inttoIndex) | Повертає подання або підсписок вектора в діапазоні від Індексу до Індексу. |
toArray | Об'єкт () toArray () | Перетворює заданий вектор у масив, що містить усі векторні елементи у заданому порядку. |
T () доArray (T () a) | Повертає масив вказаного типу, що містить усі векторні елементи. | |
toString | Рядок 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() + ' '); } }
Вихід:
c ++ широта перший пошук
Сортувати вектор
Ви також можете сортувати вектор відповідно до певного порядку. Для сортування вектора потрібно скористатися методом 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, ми перетворюємо Vector в масив String, передаючи об'єкт масиву 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 + ' '); } } }
Вихід:

Вектор проти масиву
Нижче наведено деякі відмінності між вектором та масивом.
Вектор Масив Резервує додаткове сховище при збільшенні ємності. Не резервує додаткового сховища. Вектор динамічний, і його розміри збільшуються та зменшуються в міру додавання чи видалення елементів. Масиви статичні, і розмір залишається фіксованим після оголошення. Вектори можуть зберігати лише предмети. Масиви можуть зберігати примітивні типи, а також об'єкти. Він надає метод size () для визначення розміру. Надає властивість length для визначення довжини. Розміри поняття відсутні, але їх можна створити як вектор векторів, який зазвичай називають 2d вектором. Розміри підтримують масиви. Вектор синхронізується. Масив не синхронізований. Вектор повільніший за масив. Масив швидший. Забезпечує безпеку типу, підтримуючи дженерики. Немає загальної підтримки.
Вектор проти ArrayList
У цьому розділі розглядається різниця між Vector та ArrayList у Java.
Вектор ArrayList Вектор має розмір приросту, за допомогою якого розмір вектора можна збільшити. ArrayList не забезпечує збільшення розміру. Наявна з початкової версії Java (версія JDK 1.0). Введено в Java з JDK 1.2 Vector - це застарілий клас Java. ArrayList є частиною платформи Java Collections Framework. Вектор досягає свого розміру вдвічі, коли досягається його потужність. ArrayList зростає вдвічі менше, коли досягається його потужність. Векторні методи синхронізовані. ArrayList не синхронізований. Vector використовує Enumerator та Iterator для обходу. ArrayList використовує лише Iterator. Векторні операції повільніші. ArrayList швидше. Vector є потокобезпечним, що означає, що використання Vector з декількох потоків дозволено та безпечно. ArrayList не є потокобезпечним.
Часті запитання
Q # 1) Що таке вектор у Java?
Відповідь: У Java вектор можна визначити як масив об'єктів, що збільшується. Подібно до масивів, до елементів Vector можна також отримати доступ за допомогою індексів.
Q # 2) Чи впорядковано вектор у Java?
Відповідь: Так. Впорядковано вектор і підтримується порядок вставки елементів.
Запитання №3) Чи безпечний векторний потік у Java?
Відповідь: Так. У Java клас Vector захищений від потоків. Оскільки клас Vector синхронізований, це робить його потокобезпечним, тобто ви можете використовувати клас Vector з декількох потоків, і це безпечно.
Q # 4) Чому ми використовуємо вектор у Java?
Відповідь: Найважливіша причина, по якій Vector використовується в Java, полягає в тому, що Vector автоматично зростає і зменшується. Вони динамічні, через що їх віддають перевагу масивам.
Q # 5) Що краще - ArrayList чи вектор?
Відповідь: Ефективний ArrayList швидший у порівнянні з Vector, оскільки Vector синхронізується і робить його повільнішим.
Висновок
У цьому посібнику ми почали зі структури даних Vector у Java. Вектори майже схожі на масив, в якому до елементів Vector здійснюється доступ за допомогою знайомих індексів. Вектори називаються динамічними масивами, і на відміну від масивів, розмір вектора автоматично зростає і зменшується.
Вектори також мають функції ємності та приросту, які можна використовувати для створення та резервування додаткового сховища для майбутніх доповнень. Vector є застарілим класом у пакеті Java.util Java і синхронізований, а також безпечний для потоків.
Таким чином, ми повинні віддавати перевагу векторам, коли нам потрібен динамічний розмір, а також під час роботи в багатопотоковому середовищі.
=> Завітайте сюди, щоб ознайомитись із ексклюзивними навчальними посібниками з Java.
Рекомендована література
- Підручник JAVA для початківців: 100+ практичних навчальних посібників Java
- Підручник з роздумів про Java з прикладами
- Інтерфейс Java та підручник з абстрактних класів із прикладами
- Нерівний масив у Java - Підручник із прикладами
- Підручник з довжини масиву Java із прикладами коду
- Як відсортувати масив на Java - Підручник з прикладами
- Ключове слово Java 'this': Підручник із прикладами коду
- Модифікатори доступу в Java - Підручник із прикладами