Бұл оқулық мысалдар арқылы Java тіліндегі векторлық деректер құрылымы туралы барлығын түсіндіреді. Сіз жасау, бастапқы, сұрыптау & Бағдарламаларыңызда Java векторын пайдаланыңыз:
Вектор өздігінен өсетін немесе кішірейе алатын динамикалық массив ретінде анықталуы мүмкін, яғни вектор оған көбірек элементтер қосылған кезде өседі және элементтерді қосқанда кішірейеді. одан жойылады.
Бұл әрекет статикалық массивтерге ұқсамайды. Бірақ массивтерге ұқсас, векторлық элементтерге бүтін индекстер арқылы қол жеткізуге болады.
Векторды басқа динамикалық массив деректер құрылымына ұқсас ретінде қарауға болады, ArrayList қоспағанда төмендегі екі айырмашылық бар:
- Вектор синхрондалған, яғни Вектордағы барлық әдістер «синхрондалған» деп белгіленеді және осылайша әдісті шақырғаннан кейін, алдыңғы шақыру болмаса, бірдей әдісті шақыруға болмайды. аяқталды.
- Векторлық сыныпта жинақтар шеңберінің бөлігі емес, оның бұрынғы әдістері болып табылатын көптеген әдістер бар.
Java векторлық класс
Вектор класы - бұл « java.util » бумасынан бөлек және List интерфейсін жүзеге асырады. Vector — объектілер массиві немесе объектілер векторы.
Вектор класының класс декларациясы төменде берілген:
public class Vector extends Object implements List, Cloneable, Serializable
Жоғарыда көрсетілгендей, Vector класы « java.lang.object ” және тізім, клондалатын және серияланатын интерфейстерді жүзеге асырады.
Java-да векторды қалай құруға болады?
Сіз аласызТөмендегі Vector конструктор әдістерінің кез келгенін пайдаланып Vector объектісін жасаңыз.
Конструктордың прототипі | Сипаттамасы |
---|---|
vector() | Бұл Vector класының әдепкі конструкторы. Ол өлшемі 10 бос векторды жасайды. |
vector(int initialCapacity) | Бұл шамадан тыс жүктелген конструктор сыйымдылығы бар бос Vector нысанын құрады = initialCapacity. |
вектор(int initialCapacity, int capacityIncrement) | Бұл конструктор әдісі көрсетілген initialCapacity және capacityIncrement бар бос Vector нысанын жасайды. |
Вектор( c жинағы) | Векторлық объект көрсетілген c жиынының бастапқы элементтерімен құрылады. |
Векторлық нысандарды инициализациялау үшін конструкторлардың әрқайсысын қарастырайық.
Векторды инициализациялау
(i) Vector()
Бұл Vector класының әдепкі конструкторы. Бұл конструкторды шақырған кезде, әдепкі өлшемі 10 болатын Vector нысаны жасалады.
Бұл әдістің жалпы синтаксисі:
Вектор объектісі = new Vector();
Мысалы,
Vector vec1 = new Vector ();
Жоғарыдағы мәлімдеме 10 өлшемі бар жаңа 'vec1' векторын жасайды.
(ii) Vector(int initialCapacity)
Вектор класының шамадан тыс жүктелген конструкторы аргумент ретінде "initialCapacity" қабылдайды. Бұл конструктор Векторды жасайдыкөрсетілген сыйымдылығы бар нысан.
Әдістің жалпы синтаксисі:
Векторлық объект = жаңа Vector (initialCapacity);
Мысалы,
Vector vec1 = new Vector (10);
Жоғарыдағы бағдарламалау операторы сыйымдылығы 10 болатын 'vec1' векторлық нысанын жасайды, яғни бұл Вектор 10-ға дейін сақтай алады. элементтері.
(iii) Vector(int initialCapacity, int capacityIncrement)
Бұл Vector класының тағы бір шамадан тыс жүктелген конструкторы және ол көрсетілген бастапқы мәні бар Vector нысанын жасайды. сыйымдылық және сыйымдылық үшін өсім.
Бұл әдіс үшін жалпы синтаксис:
Векторлық объект = жаңа Вектор (initialCapacity, сыйымдылық өсімі);
Мысалы,
Vector vec1 = new Vector(5,10);
Жоғарыдағы мәлімдемеде Вектордың бастапқы сыйымдылығы 5, ал өсімі 10. Бұл дегеніміз 6-шы элемент векторға енгізілген, вектордың сыйымдылығы 15-ке дейін артады (5 + 10). Сол сияқты, 16-шы элемент енгізілгенде, Вектордың векторлық сыйымдылығы 25-ке дейін (15 +10) кеңейтіледі.
(iv) Вектор(С жинақ)
Вектор класының соңғы шамадан тыс жүктелген конструкторы алдын ала анықталған жинақты аргумент ретінде қабылдайды және оның элементтері ретінде осы жиынның барлық элементтері бар Vector жасайды.
Жалпы синтаксис:
Векторлық объект = жаңа Вектор (С жинағы);
Мысалы,
Vector vec1 = new Vector(aList); where aList = {1,2,3,4,5};
Theжоғарыдағы мәлімдеме {1,2,3,4, 5} сияқты бастапқы элементтері бар Vector 'vec1' жасайды.
Осы сипаттамалардың барлығын есте сақтау бізге осы конструкторларды жақсырақ түсіну үшін Vector бағдарламасын іске асыруға мүмкіндік береді.
Java тіліндегі векторлық әдістер
Төменде Java тіліндегі Vector класы қолдайтын әдістер берілген.
Әдіс атауы | Прототип | Сипаттамасы |
---|---|---|
add | Логикалық қосу(E e) | Берілген элементті вектордың соңына қосады. |
Void add(int index, E элементі) | Белгілі индекстегі векторға элемент қосыңыз. | |
addAll | Логикалық addAll(Collection c) | Берілген жиыннан вектордың соңына дейін барлық элементтерді қосады. |
Логикалық addAll(int index, Collection c) | Барлық элементтерді қосады көрсетілген жиында көрсетілген индексте. | |
addElement | void addElement(E obj) | Көрсетілген элементті мына жерге қосады вектор өлшемін ұлғайту арқылы вектордың соңы. |
Сыйымдылық | Int сыйымдылығы() | Толық сыйымдылықты қайтарады. вектор. |
Таза | Void clear() | Оның элементтерінің векторын тазартады. |
Клон | Объектіні клон() | Векторды клондайды. |
Құрамында | Логикалық құрамында(O Object) | Вектор құрамында бар-жоғын тексередікөрсетілген элемент. |
containsAll | Логикалық құрамындаAll(Collection c) | Векторда барлық элементтер бар-жоғын тексереді. берілген жинақ. |
copyInto | Void copyInto(Object[] anArray) | Векторлық элементтерді берілген массивке көшіреді. |
ElementAt | E ElementAt(int index) | Белгілі индекстегі векторлық элементті қайтарады. |
Элементтер | Enumerationelements() | Вектор үшін санаулы компоненттерді қайтарады. |
provideCapacity | Void ensureCapacity(int minCapacity) | Белгілі бір минималды сыйымдылықты қанағаттандыру үшін вектордың сыйымдылығын арттырады. |
Әдіс атауы | Прототип | Сипаттамасы |
---|---|---|
Тең | Бульдік тең(O Object o) | Тең екенін тексеру үшін ағымдағы векторды көрсетілген вектормен салыстырады. |
firstElement | E firstElement() | 0 индексіндегі вектордың бірінші элементін қайтарады. |
Get | E get(int index) | Белгілі индекстегі вектордағы элементті қайтарады. |
hashCode | int hashCode() | Вектор үшін хэш-код мәнін қайтарады. |
indexOf | int indexOf(Object o) | векторда берілген элементтің бірінші рет кездесу индексін табады; -1 болсаэлемент векторда жоқ. |
int indexOf(Object o, int index) | Векторды көрсетілген элемент үшін алға бағытта берілген индекстен іздейді;қайтарады index, егер элемент табылса, else -1, егер элемент табылмаса. | |
insertElementAt | Void insertElementAt(E obj, int index) | Берілген нысанды векторға берілген индексте кірістіреді. |
isEmpty | Логикалық isEmpty() | Вектордың бос екенін тексереді. |
Итератор | Итератор() | Қолданылатын итераторды қайтарады. вектордың элементтерін айналып өту. |
lastElement | E lastElement() | Вектордың соңғы элементін қайтарады . |
lastIndexOf | Int lastIndexOf(Object o) | Берілген элементтің соңғы пайда болуы үшін векторды іздейді және қайтарады индекс немесе элемент табылмады -1 қайтарады. |
Int lastIndexOf(Object o, int index) | Берілген элементтің соңғы рет қайталануын іздеуді бастайды. берілген көрсеткіш кері. Элемент табылса, индексті қайтарады, әйтпесе -1 қайтарады. | |
listIterator | ListIteratorlistIterator() | Тізім итераторын қайтарады векторлық элементтердің үстінен. |
ListIteratorlistIterator(int index) | Берілгеннен бастап векторлық элементтердің үстінен тізім итераторын қайтарады.индекс. |
Әдіс атауы | Прототип | Сипаттамасы |
---|---|---|
Жою | E remove(int index) | Вектордан берілген индекстегі элементті жояды. |
Логикалық жою(Object o) | Вектордан берілген элементтің бірінші пайда болуын жояды. Элемент жоқ болса, вектормен ештеңе болмайды | |
removeAll | Бульдік removeAll(Collection c) | Вектордан барлық элементтерді жояды. берілген жинақта бар. |
void removeAll Elements() | Барлық векторлық элементтерді жояды, осылайша оны нөлге дейін азайтады. | |
removeElement | Логикалық removeElement(Object obj) | Вектордан берілген элементтің бірінші пайда болуын жояды. |
void removeElementAt(int) index) | Берілген индекстегі элементті жояды. | |
removeRange | қорғалған void removeRange(int fromIndex, int toIndex) | Берілген диапазондағы вектордың fromIndex (қоса алғанда), totoIndex (ерекше) барлық элементтерін жояды. |
retainAll | Логикалық retainAll(Collection c) | RemoveAll әдісіне қарсы retainAll әдісі Векторда көрсетілген Жинақтағы элементтерге сәйкес келетін элементтерді сақтайды. |
set | E set(int index) , E элементі) | Жаңа элементпен берілген индекстегі мәнді орнатадыберілген. |
Жарамсыз жиын ElementAt(E obj, int index) | Берілген индексте берілген элементтерді орнатады. | |
setSize | Void setSize(int newSize) | Осы вектор үшін берілген өлшемді орнатады. |
Size | int size() | Осы вектордағы элементтердің санын немесе вектордың ұзындығын қайтарады. |
қосалқы тізім | ListsubList(intfromIndex, inttoIndex) | Index пен индекске дейінгі вектордың көрінісін немесе ішкі тізімін қайтарады. |
toArray | Object[] toArray () | Берілген векторды берілген ретпен барлық вектор элементтерін қамтитын массивке түрлендіреді. |
T[] toArray(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 әдепкі конструктормен жасалады. Екінші вектор v2 бастапқы сыйымдылығы 20 ретінде жасалған. Содан кейін v2-ге бірнеше элементтер қосылады. Үшінші Вектор бастапқы сыйымдылығы 30 және өсіммен жасалады10.
Содан кейін ArrayList жасаймыз және оның аргументі ретінде ArrayList арқылы төртінші вектор v4 жасаймыз. Соңында біз осы Векторлардың әрқайсысының мазмұнын көрсетеміз.
Төртінші вектор 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("\nFirstoccurence of element 4 removed: "+evenVector.remove((Integer)4)); //Display the vector System.out.println("\nVector contents after remove operation: " +evenVector); //Remove the element at index 4 & display the vector System.out.println("\nRemove element at index 4: " +evenVector.remove(4)); System.out.println("\nVector contents after remove: " +evenVector); //hashcode for the vector System.out.println("\nHash code of the vector = "+evenVector.hashCode()); //Get the element at index 1 System.out.println("\nElement 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("\nVector Elements are:"); while(fruits_enum.hasMoreElements()) System.out.print(fruits_enum.nextElement() + " "); } }
Шығыс:
Векторды сұрыптау
Сонымен қатар векторды белгілі бір ретке сәйкес сұрыптауға болады. Векторды сұрыптау үшін Java Collections Framework жүйесінің Collections.sort () әдісін пайдалану керек.
Келесі мысалда векторлық сұрыптау көрсетілген.
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;iOutput:
In the above program, we have a Vector of four elements. Then, we declare another vector and add the previous vector as an element to the second vector. Note the way the elements of the vector is accessed. Form the for loop, you can conclude that the outer vector’s first element (at index 0) is the first or inner vector.
Thus, in the loop, we keep the index of the outer vector as 0 and loop through the inner vector to display all the elements.
Convert Vector To Array
Let’s consider the following example of converting a Vector to an array. To convert a Vector to an Array, we make use of the ‘toArray’ method of the Vector class.
In the following programming example , we declare a string Vector and add elements to it. Then using the toArray method of the Vector class, we convert the Vector to a String array by passing the string array object as an argument.
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 + " "); } } }Output:
Vector vs Array
Enlisted below are some of the differences between a Vector and an Array.
Vector Array Vector is dynamic and its size grows and shrinks as elements are added or removed. Arrays are static and its size remains fixed once declared. Vectors can store only objects. Arrays can store primitive types as well as objects. It provides a size() method to determine the size. Provides length property to determine the length. No concept dimensions but can be created as a vector of vectors, normally called 2d vector. Arrays support dimensions. Vector is synchronized. The array is not synchronized. Vector is slower than the array. Array is faster. Reserves additional storage when capacity is incremented. Does not reserve any additional storage. Ensures type safety by supporting generics. No generic support. Vector vs ArrayList
This section discusses the difference between Vector and ArrayList in Java.
Vector ArrayList Present since the initial version of Java(JDK 1.0 version). Introduced in Java since JDK 1.2 Vector is a legacy class of Java. ArrayList is a part of the Java Collections Framework. Vector grows double its size when its capacity is reached. ArrayList grows by half the size when its capacity is reached. Vector methods are synchronized. ArrayList is not synchronized. Vector uses Enumerator and Iterator for traversing. ArrayList uses only Iterator. Vector operations are slower. ArrayList is faster. Vector has increment size using which vector size can be increased. ArrayList does not provide increment size. Vector is thread-safe which means using Vector from multiple threads is permitted and is safe. ArrayList is not thread-safe. Frequently Asked Questions
Q #1) What is a Vector in Java?
Answer: In Java, a Vector can be defined as a growable array of objects. Similar to arrays, Vector elements can also be accessed using indices.
Q #2) Is vector ordered in Java?
Answer: Yes. A Vector is ordered and maintains the inserting order for elements.
Q #3) Is Vector thread-safe in Java?
Answer: Yes. In Java the Vector class is thread-safe. As the Vector class is synchronized, it makes it thread-safe i.e. you can use the Vector class from multiple threads and it is safe.
Q #4) Why do we use vector in Java?
Answer: The most important reason for which Vector is used in Java is that a Vector grows and shrinks automatically. They are dynamic because of which they are preferred over arrays.
Q #5) Which is better – ArrayList or vector?
Answer: Performance-wise ArrayList is faster when compared to Vector as Vector is synchronized and makes it slower.
Conclusion
In this tutorial, we started with the Vector data structure in Java. Vectors are almost similar to an array in which the Vector elements are accessed using familiar indices. Vectors are called dynamic array and unlike arrays, the Vector size grows and shrinks automatically.
Vectors also have the capacity and increment features that can be used to create and reserve additional storage for future additions. Vector is a legacy class in java.util package of Java and is synchronized as well as thread-safe.
Thus, we should prefer vectors when we need dynamic size and also while we are working in a multi-threaded environment.