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() và 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 |