Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách sử dụng Vector trong Java

Trong Java, có nhiều lớp dùng lưu trữ loại dữ liệu cụ thể. Mỗi lớp có tính năng riêng và lớp dùng lưu loại dữ liệu quyết định cách truy xuất và thao tác.

Một lớp quan trọng nhất Java là lớp Vector. Vector triển khai giao diện List (List interface) và dùng tạo mảng có thể thay đổi kích thước (resizable arrays).

Hướng dẫn này sẽ đi qua, tham khảo ví dụ, cách dùng lớp Vector Java tạo mảng thay đổi kích thước. Thêm, hướng dẫn thảo luận Vector so với ArrayList, rất giống Vector.

Giao diện List Java

Giao diện List dùng tạo tập dữ liệu có thứ tự trong Java. Ví dụ, List có thể lưu danh sách giày bán trong cửa hàng giày hoặc tên mọi nhân viên ngân hàng.

Tuy nhiên, vì List là giao diện, không thể tạo đối tượng từ List. Vì vậy, muốn tạo danh sách, cần dùng một trong các lớp mở rộng giao diện List. Chúng là: ArrayList, LinkedList, Vector, và Stack. Hướng dẫn tập trung cách dùng lớp Vector tạo đối tượng List trong Java.

Java Vector

Vector dùng giao diện List tạo mảng thay đổi kích thước. Tạo vector Java dùng cú pháp:

Vector<DataType> vector_name = new Vector<>();

Phân tích cú pháp cơ bản:

  • Vector báo chương trình muốn khai báo vector.
  • DataType là kiểu dữ liệu vector lưu.
  • vector_name là tên vector.
  • new Vector<>(); tạo vector mới gán cho biến vector_name.

Ví dụ, muốn khai báo vector lưu tất cả màu đèn bàn cửa hàng đa phần bán. Dùng mã:

Vector<String> lamp_colors = new Vector<>();

Bây giờ có vector lamp_colors lưu tất cả màu đèn bàn cửa hàng bán.

Phương thức Java Vector

Lớp Vector Java cung cấp nhiều phương thức truy xuất và thao tác dữ liệu lưu trong vector. Phân tích vài phương thức quan trọng nhất Vector cung cấp.

Thêm mục vào Vector

Có ba phương thức thêm mục vào vector. Phép dùng tùy cách muốn thêm.

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

Phương thức add() dùng thêm phần tử vào vector. Cú pháp:

add(index, elementName);

Phương thức add() chấp nhận hai tham số:

  • index là giá trị chỉ số vị trí mục thêm vào vector.
  • elementName là mục muốn thêm vào vector.

Nếu muốn thêm mục cuối vector, tham số index không cần.

Giả sử điều hành chuỗi cửa hàng đa phần, tạo danh sách màu đèn bàn cụ thể cho dòng nội thất mới. Nhà sản xuất thông báo đèn cam và xanh lam sẽ kèm đơn tiếp theo, muốn thêm cam và xanh lam vào danh sách màu.

Làm bằng mã:

import java.util.Vector;
class Main {
  public static void main(String[] args) {
    Vector<String> lamp_colors = new Vector<>();
    lamp_colors.add("Orange");
    lamp_colors.add("Blue");
    System.out.println("Vector: " + lamp_colors);
  }
}

Mã trả về:

Vector: [Orange, Blue]

Như thấy, mã thêm Orange và Blue vào vector lamp_colors.

Giả sử nhà sản xuất liên hệ thêm sẽ giao đèn xám. Muốn thêm xám đầu danh sách vì dự kiến phổ biến hơn. Làm bằng ví dụ trước thêm mã:

import java.util.Vector;
class Main {
  public static void main(String[] args) {
    Vector<String> lamp_colors = new Vector<>();
    lamp_colors.add("Orange");
    lamp_colors.add("Blue");
    lamp_colors.add(0, "Gray");
    System.out.println("Vector: " + lamp_colors);
  }
}

Mã trả về:

Vector: [Gray, Orange, Blue]

Trong ví dụ, dùng add() thêm Gray vào vector lamp_colors. Chỉ định tham số index 0 báo add() thêm Gray vị trí index 0. Nghĩa là thêm Gray đầu vector. Sau in toàn bộ vector.

Gộp Vector (Merge Vectors)

Phương thức addAll() dùng thêm tất cả phần tử từ vector này sang vector khác.

Giả sử có hai danh sách: phạm vi màu (color range) và màu đèn (lamp colors). Muốn gộp hai danh sách vì nhà sản xuất đèn báo có thể sản xuất đèn mọi màu trong phạm vi màu. Dùng mã:

import java.util.Vector;
class Main {
  public static void main(String[] args) {
    Vector<String> color_range = new Vector<>();
    Vector<String> lamp_colors = new Vector<>();
    color_range.add("Blue");
    color_range.add("Black");
    color_range.add("Gray");
    color_range.add("Pink");
    color_range.add("Orange");
    lamp_colors.addAll(color_range);
    System.out.println("Phạm vi màu: " + color_range);
    System.out.println("Màu đèn: " + lamp_colors);
  }
}

Mã trả về:

Phạm vi màu: [Blue, Black, Gray, Pink, Orange]
Màu đèn: [Blue, Black, Gray, Pink, Orange]

Mã trước thêm màu phạm vi vào vector color_range. Sau dùng addAll() thêm tất cả màu từ color_range vào lamp_colors. Dòng cuối in nội dung color_range và lamp_colors ra console.

Truy xuất phần tử từ Vector

Phương thức get() dùng truy xuất phần tử cụ thể từ vector. get() chấp nhận một tham số: giá trị chỉ số mục muốn truy xuất.

Giả sử danh sách màu đèn lưu theo thứ tự bảng chữ cái và muốn truy xuất mục đầu. Làm bằng mã:

import java.util.Vector;
class Main {
  public static void main(String[] args) {
    Vector<String> lamp_colors = new Vector<>();
    lamp_colors.add("Black");
    lamp_colors.add("Blue");
    lamp_colors.add("Gray");
    lamp_colors.add("Orange");
    lamp_colors.add("Pink");
    String first_element = lamp_colors.get(0);
    System.out.println("Phần tử đầu danh sách: " + first_element);
  }
}

Mã trả về:

Phần tử đầu danh sách: Black

Trong mã, dùng get() truy xuất mục đầu vector lamp_colors. Chỉ định index 0 báo mã truy xuất mục đầu, hoặc mục vị trí index 0. Sau in phần tử đầu danh sách, tiền tố "Phần tử đầu danh sách:".

Xóa phần tử khỏi Vector

Có ba phương thức xóa phần tử khỏi vector: remove(), removeAll(), và clear().

Xóa phần tử đơn lẻ

Phương thức remove() dùng xóa phần tử đơn lẻ khỏi vector. remove() chấp nhận một tham số: vị trí chỉ số phần tử muốn xóa.

Quay lại cửa hàng đa phần. Nhà sản xuất thông báo không còn sản xuất đèn cam, cần xóa khỏi danh sách màu bán. Làm bằng mã:

import java.util.Vector;
class Main {
  public static void main(String[] args) {
    Vector<String> lamp_colors = new Vector<>();
    lamp_colors.add("Black");
    lamp_colors.add("Blue");
    lamp_colors.add("Gray");
    lamp_colors.add("Orange");
    lamp_colors.add("Pink");
    lamp_colors.remove(3);
    System.out.println("Danh sách màu mới: " + lamp_colors);
  }
}

Mã trả về:

Danh sách màu mới: [Black, Blue, Gray, Pink]

Dùng remove() xóa mục vị trí index 3. Trong trường hợp này, giá trị là Orange. Sau in danh sách màu mới, tiền tố "Danh sách màu mới:".

Xóa tất cả phần tử

Phương thức removeAll() và clear() dùng xóa tất cả phần tử danh sách. Thường dùng clear() vì hiệu quả hơn, nhưng cũng dùng removeAll().

Giả sử nhà sản xuất quyết định không sản xuất đèn vì thu hẹp hoạt động. Vì vậy, không bán đèn nữa cho đến khi tìm nhà sản xuất mới. Dùng mã xóa tất cả màu đèn bán:

import java.util.Vector;
class Main {
  public static void main(String[] args) {
    Vector<String> lamp_colors = new Vector<>();
    lamp_colors.add("Black");
    lamp_colors.add("Blue");
    lamp_colors.add("Gray");
    lamp_colors.add("Orange");
    lamp_colors.add("Pink");
    lamp_colors.clear();
    System.out.println("Danh sách màu mới: " + lamp_colors);
  }
}

Mã trả về:

Danh sách màu mới: []

Dùng clear() xóa tất cả phần tử vector lamp_colors. Dòng cuối in "Danh sách màu mới: " kèm vector rỗng.

Java Vector và ArrayList

Cả ArrayList và Vector triển khai giao diện List Java. Các lớp cũng cung cấp cùng phương thức. Tuy nhiên, có vài khác biệt.

Khác biệt chính: lớp Vector được đồng bộ (synchronized), nghĩa là chỉ một luồng (thread) truy cập mã tại một thời điểm. ArrayList, ngược lại, không đồng bộ (unsynchronized), nhiều luồng làm việc danh sách cùng lúc.

Phương thức Vector bổ sung

Thêm vài phương thức thao tác dữ liệu trong vector. Bảng tham chiếu:

Tên phương thức Mô tả
contains() Tìm giá trị cụ thể trong vector
iterator() Duyệt qua vector
set() Thay đổi phần tử trong vector
size() Trả về độ dài vector
toArray() Chuyển vector thành mảng
toString() Chuyển vector thành chuỗi

Kết luận

Lớp Vector dùng trong Java lưu dữ liệu dùng giao diện List. Ví dụ, Vector dùng lưu danh sách sản phẩm cửa hàng đa phần hoặc danh sách thực phẩm chức năng hiệu thuốc địa phương.

Hướng dẫn thảo luận cơ bản Vector Java, cách tạo vector, khác biệt Vector và ArrayList. Thêm, hướng dẫn đi qua phương thức chính truy xuất và thao tác nội dung vector, tham khảo ví dụ.

Bây giờ bạn có kỹ năng bắt đầu dùng Vector Java như chuyên gia!