Trong hướng dẫn này, chúng ta sẽ tìm hiểu về lớp Vector và cách sử dụng nó. Chúng ta cũng sẽ tìm hiểu nó khác với lớp ArrayList như thế nào và tại sao chúng ta nên sử dụng danh sách mảng để thay thế.
Các Vector
lớp học là một thực hiện các List
giao diện cho phép chúng ta tạo ra thay đổi kích thước-mảng tương tự như ArrayList lớp.
Java Vector so với ArrayList
Trong Java, cả hai ArrayList
và Vector
thực thi List
giao diện và cung cấp các chức năng giống nhau. Tuy nhiên, tồn tại một số khác biệt giữa chúng.
Các Vector
lớp đồng bộ từng hoạt động cá nhân. Điều này có nghĩa là bất cứ khi nào chúng ta muốn thực hiện một số thao tác trên vectơ, Vector
lớp sẽ tự động áp dụng một khóa cho thao tác đó.
Đó là bởi vì khi một luồng đang truy cập vào một vector và đồng thời một luồng khác cố gắng truy cập nó, một ngoại lệ được gọi ConcurrentModificationException
là được tạo ra. Do đó, việc sử dụng liên tục khóa này cho mỗi hoạt động làm cho vectơ kém hiệu quả hơn.
Tuy nhiên, trong danh sách mảng, các phương thức không được đồng bộ hóa. Thay vào đó, nó sử dụng Collections.synchronizedList()
phương pháp đồng bộ hóa toàn bộ danh sách.
Lưu ý: Nên sử dụng ArrayList
thay Vector
vì vectơ không an toàn cho luồng và kém hiệu quả hơn.
Tạo một vectơ
Đây là cách chúng ta có thể tạo vectơ trong Java.
Vector<Type> vector = new Vector<>();
Ở đây, Loại cho biết loại danh sách được liên kết. Ví dụ,
// create Integer type linked list
Vector<Integer> vector= new Vector<>();
// create String type linked list
Vector<String> vector= new Vector<>();
Phương pháp vectơ
Các Vector
lớp học cũng cung cấp việc triển khai thay đổi kích thước mảng của List
giao diện (tương tự như các ArrayList
lớp). Một số Vector
phương pháp là:
Thêm phần tử vào vectơ
add(element)
– adds an element to vectorsadd(index, element)
– adds an element to the specified positionaddAll(vector)
– adds all elements of a vector to another vector
Ví dụ,
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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<String> animals = new Vector<>();
animals.add("Crocodile");
animals.addAll(mammals);
System.out.println("New Vector: " + animals);
}
}
Đầu ra
Vector: [Dog, Horse, Cat] New Vector: [Crocodile, Dog, Horse, Cat]
Truy cập các phần tử vectơ
get(index)
– returns an element specified by the indexiterator()
– returns an iterator object to sequentially access vector elements
Ví dụ,
import java.util.Iterator;
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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<String> iterate = animals.iterator();
System.out.print("Vector: ");
while(iterate.hasNext()) {
System.out.print(iterate.next());
System.out.print(", ");
}
}
}
Đầu ra
Element at index 2: Cat Vector: Dog, Horse, Cat,
Xóa các phần tử vectơ
remove(index)
– removes an element from specified positionremoveAll()
– removes all the elementsclear()
– removes all elements. It is more efficient thanremoveAll()
Ví dụ,
import java.util.Vector;
class Main {
public static void main(String[] args) {
Vector<String> 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);
}
}
Đầu ra
Initial Vector: [Dog, Horse, Cat] Removed Element: Horse New Vector: [Dog, Cat] Vector after clear(): []
Các phương pháp vectơ khác
Methods | Decfscriptions |
---|---|
set() | changes an element of the vector |
size() | returns the size of the vector |
toArray() | converts the vector into an array |
toString() | converts the vector into a String |
contains() | searches the vector for specified element and returns a boolean result |