Véc tơ Java (Có ví dụ)

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 Vectorlớp học là một thực hiện các Listgiao 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 ArrayListVectorthực thi Listgiao 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 Vectorlớ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ơ, Vectorlớ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 ConcurrentModificationExceptionlà đượ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 ArrayListthay Vectorvì 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 Vectorlớp học cũng cung cấp việc triển khai thay đổi kích thước mảng của Listgiao diện (tương tự như các ArrayListlớp). Một số Vectorphươ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ỉ định
  • addAll(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ục
  • iterator() - 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ỉ định
  • removeAll() - 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

thú vị bài viết...