Java Vector (με παραδείγματα)

Σε αυτό το σεμινάριο, θα μάθουμε για την κλάση Vector και πώς να τη χρησιμοποιήσουμε. Θα μάθουμε επίσης πώς είναι διαφορετικό από την τάξη ArrayList και γιατί πρέπει να χρησιμοποιήσουμε λίστες πίνακα.

Το Vectorμάθημα είναι μια εφαρμογή της Listδιεπαφής που μας επιτρέπει να δημιουργήσουμε συστοιχίες με δυνατότητα αλλαγής μεγέθους παρόμοια με την κλάση ArrayList.

Java Vector εναντίον ArrayList

Στην Java, τόσο ArrayListκαι Vectorυλοποιεί τη Listδιεπαφή και παρέχει τις ίδιες λειτουργίες. Ωστόσο, υπάρχουν κάποιες διαφορές μεταξύ τους.

Η Vectorτάξη συγχρονίζει κάθε μεμονωμένη λειτουργία. Αυτό σημαίνει ότι όποτε θέλουμε να εκτελέσουμε κάποια λειτουργία σε διανύσματα, η Vectorκλάση εφαρμόζει αυτόματα ένα κλείδωμα σε αυτήν τη λειτουργία.

Επειδή όταν ένα νήμα έχει πρόσβαση σε ένα διάνυσμα, και ταυτόχρονα ένα άλλο νήμα προσπαθεί να αποκτήσει πρόσβαση, δημιουργείται μια εξαίρεση που ονομάζεται ConcurrentModificationException. Επομένως, αυτή η συνεχής χρήση κλειδαριάς για κάθε λειτουργία καθιστά τα διανύσματα λιγότερο αποτελεσματικά.

Ωστόσο, σε λίστες πίνακα, οι μέθοδοι δεν συγχρονίζονται. Αντ 'αυτού, χρησιμοποιεί τη Collections.synchronizedList()μέθοδο που συγχρονίζει τη λίστα ως σύνολο.

Σημείωση: Συνιστάται η χρήση ArrayListστη θέση του Vectorεπειδή τα διανύσματα δεν είναι ασφαλή στο νήμα και είναι λιγότερο αποτελεσματικά.

Δημιουργία διανύσματος

Εδώ είναι πώς μπορούμε να δημιουργήσουμε διανύσματα στην Java.

 Vector vector = new Vector(); 

Εδώ, το Type υποδεικνύει τον τύπο μιας συνδεδεμένης λίστας. Για παράδειγμα,

 // create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector(); 

Μέθοδοι του διανύσματος

Η Vectorκλάση παρέχει επίσης τις εφαρμογές με δυνατότητα αλλαγής μεγέθους της Listδιεπαφής (παρόμοια με την ArrayListκλάση). Μερικές από τις Vectorμεθόδους είναι:

Προσθήκη στοιχείων στο διάνυσμα

  • add(element) - προσθέτει ένα στοιχείο στα διανύσματα
  • add(index, element) - προσθέτει ένα στοιχείο στην καθορισμένη θέση
  • addAll(vector) - προσθέτει όλα τα στοιχεία ενός διανύσματος σε ένα άλλο διάνυσμα

Για παράδειγμα,

 import java.util.Vector; class Main ( public static void main(String() args) ( Vector mammals= new Vector(); // Using the add() method mammals.add("Dog"); mammals.add("Horse"); // Using index number mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // Using addAll() Vector animals = new Vector(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); ) ) 

Παραγωγή

 Διάνυσμα: (Σκύλος, Άλογο, Γάτα) Νέο Διάνυσμα: (Κροκόδειλος, Σκύλος, Άλογο, Γάτα) 

Πρόσβαση σε διανυσματικά στοιχεία

  • get(index) - επιστρέφει ένα στοιχείο που καθορίζεται από το ευρετήριο
  • iterator() - επιστρέφει ένα αντικείμενο επανάληψης για τη διαδοχική πρόσβαση σε διανυσματικά στοιχεία

Για παράδειγμα,

 import java.util.Iterator; import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Using get() String element = animals.get(2); System.out.println("Element at index 2: " + element); // Using iterator() Iterator iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) ) 

Παραγωγή

 Στοιχείο στο ευρετήριο 2: Διάνυσμα γάτας: Σκύλος, άλογο, γάτα, 

Κατάργηση διανυσματικών στοιχείων

  • remove(index) - αφαιρεί ένα στοιχείο από την καθορισμένη θέση
  • removeAll() - αφαιρεί όλα τα στοιχεία
  • clear()- αφαιρεί όλα τα στοιχεία. Είναι πιο αποτελεσματικό απόremoveAll()

Για παράδειγμα,

 import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); // Using remove() String element = animals.remove(1); System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // Using clear() animals.clear(); System.out.println("Vector after clear(): " + animals); ) ) 

Παραγωγή

 Αρχικό διάνυσμα: (Σκύλος, Άλογο, Γάτα) Καταργημένο στοιχείο: Άλογο Νέο διάνυσμα: (Σκύλος, Γάτα) Διάνυσμα μετά από διαγραφή (): () 

Άλλες μέθοδοι φορέα

Μέθοδοι Περιγραφές
set() αλλάζει ένα στοιχείο του διανύσματος
size() επιστρέφει το μέγεθος του διανύσματος
toArray() μετατρέπει το διάνυσμα σε πίνακα
toString() μετατρέπει το διάνυσμα σε συμβολοσειρά
contains() αναζητά το διάνυσμα για καθορισμένο στοιχείο και επιστρέφει ένα δυαδικό αποτέλεσμα

ενδιαφέροντα άρθρα...