Chuyển Đổi ArrayList Sang Mảng Trong Java
Khi làm việc với ArrayList, bạn có thể gặp tình huống muốn chuyển đổi nó thành mảng, hoặc ngược lại. Ví dụ, bạn có danh sách cổ phiếu trong danh mục đầu tư lưu trong mảng và muốn chuyển thành ArrayList.
Trong Java, phương thức toArray() dùng để chuyển ArrayList thành mảng, và phương thức asList() dùng để chuyển danh sách thành ArrayList. Hướng dẫn này sẽ thảo luận, kèm ví dụ, cách chuyển đổi ArrayList sang mảng và ngược lại trong Java.
Mảng Và ArrayList Trong Java
Trong Java, mảng dùng để lưu trữ dãy chứa không hoặc nhiều giá trị. Ví dụ, mảng có thể lưu danh sách kẹo bán tại cửa hàng kẹo, hoặc danh sách đơn hàng tại quán cà phê địa phương. Mảng có thể lưu bất kỳ kiểu dữ liệu nào như float, boolean, chuỗi.
Ví dụ về mảng trong Java:
String[] names = new String[5];
Trong ví dụ này, chúng ta khởi tạo mảng names lưu trữ năm giá trị chuỗi.
Trước khi sử dụng mảng trong Java, bạn cần khai báo kích thước của nó. Ngoài ra, sau khi khai báo kích thước, việc thay đổi kích thước mảng khá khó khăn.
Đó là lúc lớp ArrayList xuất hiện. ArrayList là một triển khai của giao diện List trong Java và cho phép tạo mảng có thể thay đổi kích thước. Khi thêm hoặc xóa đối tượng từ ArrayList, dung lượng của danh sách tự động thay đổi để phản ánh số lượng giá trị đang lưu trữ. Trong hướng dẫn này, chúng ta sẽ gọi lớp ArrayList đơn giản là danh sách (list).
Ví dụ về ArrayList trong Java:
ArrayList<String> names = new ArrayList<>();
Trong ví dụ trên, chúng ta khai báo ArrayList tên names lưu trữ bất kỳ số lượng giá trị chuỗi nào.
Sau khi nắm cơ bản về mảng và ArrayList trong Java, chúng ta có thể khám phá cách chuyển đổi dữ liệu sử dụng các kiểu dữ liệu này.
Chuyển Đổi Danh Sách Sang Mảng
Trong Java, phương thức list.toArray() dùng để chuyển danh sách thành mảng.
Giả sử chúng ta có danh sách cổ phiếu trong danh mục hưu trí lưu trong ArrayList. Chúng ta quyết định lưu trữ trong mảng vì không định thêm cổ phiếu mới vào danh mục hưu trí.
Chúng ta có thể chuyển danh sách chứa danh sách cổ phiếu thành mảng Java bằng mã sau:
import java.util.List; import java.util.Arrays; import java.util.ArrayList; class Main { public static void main(String[] args) { List<String> portfolio = new ArrayList<String>(); portfolio.add("BAM"); portfolio.add("GOOGL"); portfolio.add("SBUX"); String[] newPortfolio = new String[portfolio.size()]; portfolio.toArray(newPortfolio); System.out.println("Portfolio: " + Arrays.toString(newPortfolio)); } }
Mã trả về:
Portfolio: [BAM, GOOGL, SBUX]
Phân tích mã: Đầu tiên, nhập ba thư viện: List, Arrays, và ArrayList. Thư viện List cho phép làm việc với giao diện List của Java, ArrayList cho phép làm việc với ArrayList, và Arrays cho phép dùng phương thức toString() để in mảng ra bảng điều khiển.
Sau đó khai báo ArrayList tên portfolio lưu giá trị chuỗi. Dùng phương thức add() thêm ba giá trị: BAM, GOOGL, SBUX.
Dòng tiếp theo, tạo mảng newPortfolio và khởi tạo mảng cùng kích thước. Đặt dung lượng mảng chuỗi newPortfolio - số giá trị nó có thể chứa - bằng độ dài mảng portfolio. Vì vậy, mảng newPortfolio có thể chứa ba giá trị.
Tiếp theo, dùng phương thức toArray() chuyển ArrayList portfolio thành mảng và gán mảng newPortfolio các giá trị lưu trong biến portfolio. Sau đó dùng Arrays.toString() chuyển biến newPortfolio thành chuỗi dễ đọc. Cuối cùng, in thông báo Portfolio: theo sau giá trị trả về bởi Arrays.toString() ra bảng điều khiển.
Chuyển Đổi Mảng Sang Danh Sách
Phương thức asList() dùng để chuyển mảng thành ArrayList trong Java.
Quay lại ví dụ danh mục hưu trí trước. Giả sử chúng ta có mảng cổ phiếu trong danh mục hưu trí muốn chuyển thành ArrayList. Có thể làm như sau:
import java.util.Arrays; import java.util.List; class Main { public static void main(String[] args) { String[] portfolio = {"BAM", "GOOGL", "SBUX"}; List<String> newPortfolio = Arrays.asList(portfolio); System.out.println("New portfolio: " + newPortfolio); } }
Mã trả về:
New portfolio: [BAM, GOOGL, SBUX]
Trong ví dụ này, chúng ta dùng asList() chuyển mảng danh mục hưu trí tên portfolio thành danh sách. Phân tích mã:
Đầu tiên, nhập gói Arrays và List chứa các phương thức cần thiết để chuyển mảng thành danh sách. Sau đó khai báo biến portfolio chứa mảng cổ phiếu trong danh mục hưu trí.
Dòng tiếp theo, dùng phương thức Arrays.asList() chuyển nội dung mảng portfolio thành danh sách. Gán danh sách mới cho biến newPortfolio. Cuối cùng, in thông báo New portfolio: theo sau nội dung mảng newPortfolio.
Kết Luận
Phương thức toArray() của Java dùng để chuyển danh sách thành mảng, và phương thức asList() dùng để chuyển mảng thành danh sách.
Hướng dẫn này đã thảo luận, kèm ví dụ, cách chuyển ArrayList sang mảng và mảng sang ArrayList trong Java. Ngoài ra, hướng dẫn cũng thảo luận sự khác biệt chính giữa lớp ArrayList và kiểu dữ liệu mảng. Bạn đã sẵn sàng chuyển đổi ArrayList sang mảng và ngược lại như một lập trình viên Java chuyên nghiệp!