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 giống với lớp ArrayList.
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 vectơ 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 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 vector= new Vector(); // create String type linked list Vector 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)
- thêm một phần tử vào vectơadd(index, element)
- thêm một phần tử vào vị trí được chỉ địnhaddAll(vector)
- thêm tất cả các phần tử của một vectơ vào một vectơ khác
Ví dụ,
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); ) )
Đầu ra
Vectơ: (Chó, Ngựa, Mèo) Véc tơ mới: (Cá sấu, Chó, Ngựa, Mèo)
Truy cập các phần tử vectơ
get(index)
- trả về một phần tử được chỉ định bởi chỉ mụciterator()
- trả về một đối tượng trình vòng lặp để truy cập tuần tự các phần tử vectơ
Ví dụ,
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(", "); ) ) )
Đầu ra
Phần tử ở chỉ số 2: Cat Vector: Dog, Horse, Cat,
Xóa các phần tử vectơ
remove(index)
- xóa một phần tử khỏi vị trí đã chỉ địnhremoveAll()
- loại bỏ tất cả các yếu tốclear()
- loại bỏ tất cả các phần tử. Nó hiệu quả hơnremoveAll()
Ví dụ,
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); ) )
Đầu ra
Vectơ ban đầu: (Chó, Ngựa, Mèo) Phần tử bị xóa: Ngựa Vectơ mới: (Chó, mèo) Vectơ sau khi xóa (): ()
Các phương pháp vectơ khác
Phương pháp | Mô tả |
---|---|
set() | thay đổi một phần tử của vectơ |
size() | trả về kích thước của vectơ |
toArray() | chuyển đổi vectơ thành một mảng |
toString() | chuyển đổi vectơ thành một chuỗi |
contains() | tìm kiếm vectơ cho phần tử được chỉ định và trả về kết quả boolean |