1. Vector trong Java là gì?

Vector trong Java là một loại lưu trữ tương tự như mảng động và hoàn toàn có thể thay đổi kích thước (như tăng hoặc giảm) của mảng đó. Vector không giống như các mảng thông thường, mà thay vào đó Vector hoàn toàn cho phép lưu trữ N phần tử bên trong mảng mà không phải giới hạn kích thước mảng.

Từ phiên bản Java 1.2, lớp Vector nằm trong các Collection của Java. Lớp này được tích hợp sẵn trong gói java.util và được xây dựng giựa theo Conllection List trong Java. Vì vậy mà, ta hoàn toàn có thể sử dụng các phương thức có trong List để thao tác với Vector.

Lớp Vector cũng tương tự như kiểu ArrayList, tuy nhiên nó vẫn có một số sự khác biệt như:

  • Vector được đồng bộ.
  • Vector chứa các phương thức legacy mà không là một phần của Collection Framework.

2. Khai báo Vector trong Java

Khai báo một Vector trong Java, chúng ta có thể thực hiện khai báo theo 4 cách. Bởi vì, lớp Vector trong Java hỗ trợ 4 constructor đó là:

//Khoi tao khong tham so
Vector()
//Khoi tao 1 tham so
Vector(int size)
//Khoi tao 2 tham so
Vector(int size, int incr)
//Khoi tao theo Collection
Vector(Collection c)
  • Kiểu khai báo Vector đầu tiên, khai báo một Vector theo kiểu khởi tạo không tham số: Vector() – khi đó vector này sẽ có kích thước mặc định bằng 10:
import java.util.*;  
public class Main {  
    public static void main(String args[]) {  
        //Tao 1 vector voi cac phan tu ben trong la string
        Vector<String> vec = new Vector<String>();
        //Them cac phan tu String vao vector bang phuong thuc add()
        vec.add("Tiger");  
        vec.add("Lion");  
        vec.add("Dog");  
        vec.add("Elephant");
        //Mac dinh kich thuoc cua vector
        System.out.println("Kich thuoc vector la: " + vec.size()); 
    }  
}

Kết quả:

Kich thuoc vector la: 4
  • Kiểu khai báo thứ hai, khai báo một vector theo kiểu khởi tạo có 1 tham số (tham số này chỉ định kích thước cho Vector): Vector(int size) – khi đó Vector này sẽ có kích thước là size:
import java.util.*;  
public class Main {  
    public static void main(String args[]) {  
        //Khai bao vector String voi kich thuoc bang 5
        Vector<String> vec = new Vector<String>(5);
        //Them cac phan tu String vao vector bang phuong thuc add()
        vec.add("Tiger");  
        vec.add("Lion");  
        vec.add("Dog");  
        vec.add("Elephant");
        vec.add("Cat");
        //Kiem tra kich thuoc
        System.out.println("Kich thuoc vector la: " + vec.size()); 
    }  
}

Kết quả:

Kich thuoc vector la: 5
  • Kiểu khai báo Vector thứ ba, khai báo một vector theo kiểu khởi tạo có 2 tham số (tham số kích thước của vector và tham số mức tăng dung lượng của vector): Vector(int size, int incr) – khi đó Vector này có kích thước là size và mức tăng dung lượng là incr.
import java.util.*;  
public class Main {  
    public static void main(String args[]) {  
        //Khai bao vector String voi kich thuoc bang 5
        Vector<String> vec = new Vector<String>(3,2);
        System.out.println("Size ban dau: " + vec.size());
        System.out.println("Capacity ban dau: " + vec.capacity());
        //Them cac phan tu String vao vector bang phuong thuc add()
        vec.add("Tiger");  
        vec.add("Lion");  
        vec.add("Dog");  
        vec.add("Elephant");
        System.out.println("Capacity sau 4 lan cong la: " + vec.capacity());
    }  
}

Kết quả:

Size ban dau: 0
Capacity ban dau: 3
Capacity sau 4 lan cong la: 5

3. Ví dụ Vector trong Java

3.1 Thêm phần tử vào Vector trong Java

Vì được xây dựng trên List Collection, vậy nên chúng ta hoàn toàn có thể sử dụng các phương thức của List để thêm các phần tử vào trong Vector. Các phương thức phổ biến được sử dụng khi thêm phần tử vào List cũng như Vector đó là: add()addElement() 

import java.util.*;  
public class Main {  
    public static void main(String args[]) {  
      //Tao vector
      Vector<String> vec = new Vector<String>();  
      //Them phan tu bang phuong thuc add()
      vec.add("Tiger");  
      vec.add("Lion");  
      vec.add("Dog");  
      vec.add("Elephant");  
      //Them phan tu bang phuong thuc addElenment()
      vec.addElement("Rat");  
      vec.addElement("Cat");  
      vec.addElement("Deer");  
      //Hien thi
      System.out.println("Phan tu trong Vector: "+vec);  
    }  
}

Kết quả:

Phan tu trong Vector: [Tiger, Lion, Dog, Elephant, Rat, Cat, Deer]

3.2 Thao tác với Vector trong Java

Các thao tác chính để thực hiện với Vector thường là việc lấy ra các thông số về kích thước Vector, Capacity Vector, số lượng phần tử Vector, phần tử đầu và phần tử cuối của Vector. Ngoài ra còn có thể thao tác kiểm tra xem 1 phần tử có thuộc Vector hay không?

Chúng ta hoàn toàn có thể thực hiện các thao tác trên khi sử dụng Vector trong Java bằng cách sử dụng các phương thức size(), capacity(), indexOf(), contains(), firstElement(), lastElement() như sau:

import java.util.*;  
public class Main {  
    public static void main(String args[]) {  
      //Tao vector co capacity bang 4
      Vector<String> vec = new Vector<String>(4);  
      //Them phan tu vao vector
      vec.add("Tiger");  
      vec.add("Lion");  
      vec.add("Dog");  
      vec.add("Elephant");  
      //Kiem tra size va capacity cua vector
      System.out.println("Size cua vector la: "+vec.size());  
      System.out.println("Capacity mac dinh cua vector la: "+vec.capacity());  
      //Hien thi vector
      System.out.println("Phan tu trong vector: "+vec);  
      vec.addElement("Rat");  
      vec.addElement("Cat");  
      vec.addElement("Deer");  
      //Kiem tra lai size va capacity cua vector sau khi them 2 phan tu
      System.out.println("Size cua vector sau khi them 2 phan tu: "+vec.size());  
      System.out.println("Capacity cua vector sau khi them 2 phan tu: "+vec.capacity());  
      //Hien thi lai vector sau khi them 2 phan tu
      System.out.println("Phan tu trong vector sau khi them 2 phan tu la: "+vec);  
      //Kiem tra phan tu "Tiger" co trong vector hay khong 
      if(vec.contains("Tiger"))  
      {  
        System.out.println("Tiger co trong vector, tai vi tri: " +vec.indexOf("Tiger"));  
      }  
      else  
      {  
        System.out.println("Tiger khong co trong vector");  
      }  
      //Lay phan tu dau tien cua vector
      System.out.println("Phan tu dau tien cua vector la: "+vec.firstElement());   
      //Lay phan tu cuoi cung cua vector
      System.out.println("Phan tu cuoi cung cua vector la: "+vec.lastElement());   
    }  
}

Kết quả:

Size cua vector la: 4
Capacity mac dinh cua vector la: 4
Phan tu trong vector: [Tiger, Lion, Dog, Elephant]
Size cua vector sau khi them 2 phan tu: 7
Capacity cua vector sau khi them 2 phan tu: 8
Phan tu trong vector sau khi them 2 phan tu la: [Tiger, Lion, Dog, Elephant, Rat, Cat, Deer]
Tiger co trong vector, tai vi tri: 0
Phan tu dau tien cua vector la: Tiger
Phan tu cuoi cung cua vector la: Deer

3.3 Xóa phần tử trong Vector

Thao tác xóa phần tử trong Vector là việc loại bỏ đi các phần tử mà chúng ta không cần thiết sử dụng với Vector nữa. Chúng ta có thể thực hiện xóa phần tử đầu có trong Vector, xóa phần tử cuối có trong Vector hoặc cũng có thể xóa một phần tử tại vị trí index bất kỳ trong Vector.

Để thực hiện các thao tác xóa phần tử trong Vector, ta cần sử dụng đến các phương thức của List như: remove(), removeElementAt().

import java.util.*;  
public class Main {  
    public static void main(String args[]) {  
        //Tao mot vector rong co kieu Integer
        Vector<Integer> vec = new Vector<>();  
        //Them phan tu vao vector 
        vec.add(100);  
        vec.add(200);  
        vec.add(300);  
        vec.add(200);  
        vec.add(400);  
        vec.add(500);  
        vec.add(600);  
        vec.add(700);  
        //Hien thi cac phan tu ban dau
        System.out.println("Phan tu trong vector: " +vec);  
        //Xoa phan tu co gia tri 200 
        System.out.println("Xoa phan tu 200: "+vec.remove((Integer)200));  
        //Hien thi vector sau khi xoa phan tu 200
        System.out.println("Vector sau khi xoa phan tu 200: " +vec);  
        //Xoa phan tu tai vi tri 4
        System.out.println("Xoa phan tu tai vi tri 4 trong vector: " +vec.remove(4));  
        System.out.println("Vector sau khi xoa phan tu tai vi tri 4: " +vec);  
        //Xoa phan tu tai vi tri 5 trong Vector 
        vec.removeElementAt(5);        
        //Hien thi lai vector
        System.out.println("Vector sau khi xoa phan tu tai vi tri 5: " +vec);  
    }  
}

Kết quả:

Phan tu trong vector: [100, 200, 300, 200, 400, 500, 600, 700]
Xoa phan tu 200: true
Vector sau khi xoa phan tu 200: [100, 300, 200, 400, 500, 600, 700]
Xoa phan tu tai vi tri 4 trong vector: 500
Vector sau khi xoa phan tu tai vi tri 4: [100, 300, 200, 400, 600, 700]
Vector sau khi xoa phan tu tai vi tri 5: [100, 300, 200, 400, 600]

4. Các phương thức của Vector trong Java

Trong các ví dụ trên, chúng ta đã sử dụng qua một vài phương thức phổ biết khi thao tác với Vector trong Java như: add(), addElement(), size(), capacity(), indexOf(), contains(), firstElement(), lastElement() , tuy nhiên vẫn còn rất nhiều các phương thức được sử dụng kèm với Vector để tiện lợi sử dụng Vector một cách dễ dàng hơn.

Các phương thức này cũng được áp dụng (hay sử dụng) cho kiểu List trong Java, dưới đây là bảng liệt kê các phương thức và mô tả cách sử dụng của chúng với Vector trong Java:

Phương thức Mô tả
void add(int index, Object element) Chèn phần tử đã xác định tại vị trí đã vào Vector
boolean add(Object o) Thêm phần tử đã cho vào cuối của Vector
boolean addAll(Collection c) Thêm tất cả phần tử trong Collection đã xác định tới cuối của Vector
boolean addAll(int index, Collection c) Chèn tất cả phần tử trong Collection đã xác định vào trong Vector này tại vị trí đã cho
void addElement(Object obj) Thêm phần tử đã cho tới cuối của Vector, tăng kích thước vector lên 1
int capacity() Trả về dung lượng hiện tại của Vector
void clear() Xóa toàn bộ phần tử trong Vector
Object clone() Tạo một bản sao của Vector
boolean contains(Object elem) Kiểm tra phần tử có trong Vector hay không
void copyInto(Object[] anArray) Sao chép các thành phần của Vector vào trong mảng đã cho
Object elementAt(int index) Trả về phần tử tại index đã cho
Enumeration elements() Trả về một bản liệt kê các phần tử của Vector
void ensureCapacity(int minCapacity) Tăng dung lượng của Vector
boolean equals(Object o) So sánh sự giống nhau giữa một Object đã cho với Vector
Object firstElement() Trả về phần tử đầu tiên (tại chỉ mục 0) của Vector
Object get(int index) Trả về phần tử tại vị trí đã cho trong Vector
int hashCode() Trả về giá trị hash code cho Vector
int indexOf(Object elem) Tìm kiếm phần tử trong Vector
int indexOf(Object elem, int index) Tìm kiểm phần tử trong Vector bắt đầu tử vị trí chỉ định
void insertElementAt(Object obj, int index) Thêm phần tử vào Vector tại vị trí index
boolean isEmpty() Kiểm tra nếu Vector này không có phần tử
Object lastElement() Trả về phần tử cuối cùng của Vector này
int lastIndexOf(Object elem) Trả về vị trí của phần tử có trong Vector
int lastIndexOf(Object elem, int index) Tìm kiếm ngược về sau cho đối tượng đã cho, bắt đầu từ index đã xác định
Object remove(int index) Xóa bỏ phần tử trong Vector tại ví trí được chỉ định
boolean remove(Object o) Xóa phần tử trong vector theo giá trị
boolean removeAll(Collection c) Xóa bỏ toàn bộ phần tử trong Vector mà chứa trong Collection đã cho
void removeAllElements() Xóa bỏ tất cả phần tử từ Vector này và thiết lập kích cỡ về 0
boolean removeElement(Object obj) Xóa phần tử đầu tiên (chỉ mục thấp nhất) có trong Vector theo giá trị được chỉ định
void removeElementAt(int index) Xóa phần tử trong Vector tại vị trí cho sẵn
protected void removeRange(int fromIndex, int toIndex) Xóa phần tử trong Vector từ vị trí fromIndex tới toIndex
boolean retainAll(Collection c) Chỉ giữ lại phần tử, mà ở trong Collection đã cho, trong Vector
Object set(int index, Object element) Thay thế phần tử tại vị trí đã cho trong Vector này với phần tử đã xác định
void setElementAt(Object obj, int index) Thiết lập phần tử tại index đã cho của Vector này thành đối tượng đã xác định
void setSize(int newSize) Thay đổi kích cỡ của Vector
int size() Trả về số phần tử trong Vector
List subList(int fromIndex, int toIndex) Trả về một danh sách con từ fromIndex tới toIndex
Object[] toArray() Trả về một mảng chứa tất cả phần tử trong Vector này theo đúng thứ tự
Object[] toArray(Object[] a) Trả về một mảng chứa tất cả phần tử trong Vector này theo đúng thứ tự; kiểu runtime của mảng trả về là mảng đã xác định
String toString() Trả về một biểu diễn chuỗi của Vector này, chứa biểu diễn chuỗi của mỗi phần tử
void trimToSize() Trim dung lượng của Vector này về kích cỡ hiện tại của vector