CodeGym /Blog Java /Ngẫu nhiên /Chuyển đổi mảng thành ArrayList trong Java

Chuyển đổi mảng thành ArrayList trong Java

Xuất bản trong nhóm
CHÀO! Trong bài học hôm nay, chúng ta sẽ nói về Cách khởi tạo một mảng trong Java và Cách chuyển đổi mảng thành một danh sách mảng. Mảng là một phần mở rộng của lớp Container trong Java và có thể hữu ích như một cách để tạm thời giữ một tập hợp các kiểu dữ liệu nguyên thủy khi số lượng dữ liệu được biết cụ thể. Nhưng Mảng là tĩnh khi được tạo, có nghĩa là khi bạn tạo một Mảng, bạn không thể thay đổi số lượng mục mà nó chứa. Bạn nên nhớ cách khởi tạo mảng trong java; nó trông như thế này:

datatype[] isArray;
Trong đó kiểu dữ liệu là bất kỳ kiểu dữ liệu nguyên thủy nào như int, float, long hoặc thậm chí là String. Bạn cũng có thể đặt dấu ngoặc sau phần khai báo như sau:

datatype isArray[];
Vậy làm cách nào để chúng ta lấy mảng tĩnh này với một số phần tử đã đặt và chuyển đổi nó thành ArrayList? Chà, trước tiên, hãy xem ArrayList là gì.

Danh sách mảng

Một ArrayList có thể có tên tương tự như Array nhưng nó được xử lý hoàn toàn khác. Đó là bởi vì ArrayList không mở rộng lớp Container, nó mở rộng lớp List. Và điều đó có nghĩa là mọi thứ được xử lý theo cách khác. Đối với một điều, vì nó là một Danh sách, bạn có thể thao tác nó theo cách khác. Bạn có thể tăng hoặc giảm kích thước của ArrayList bằng cách sử dụng add(element) , đặt phần tử ở cuối Danh sách và tăng kích thước lên một nếu cần. Hoặc bạn có thể sử dụng trimToSize()loại bỏ bất kỳ chỉ mục trống nào ở cuối và cắt ArrayList theo kích thước hiện tại của nó. Vì vậy, bạn có thể thấy rằng có một vài lợi thế khi sử dụng ArrayList thay vì chỉ một mảng. Tiếp theo, chúng tôi sẽ chỉ cho bạn hai phương pháp để chuyển đổi từ một Mảng thành một ArrayList và cách di chuyển ngược lại nếu bạn cần.

Di chuyển từ Array sang ArrayList và ArrayList sang Array trong Java

Vì vậy, giả sử rằng bạn đã viết một chương trình để kiểm kê số lượng đai ốc và bu lông mà công ty của bạn có sẵn để sửa chữa cây mèo. Trong nhiều năm, bạn chỉ cần 30 loại khác nhau, vì vậy thật dễ dàng để sử dụng một mảng để theo dõi. Nhưng bây giờ bạn có một khách hàng mới yêu cầu bạn nhập thêm 5 loại. Làm cách nào bạn có thể thay đổi chương trình của mình và giữ lại tất cả dữ liệu của mình, VÀ ngăn không cho bạn phải thực hiện lại việc này khi bạn đón một khách hàng khác? Đúng rồi! Một ArrayList! Vậy làm thế nào để bạn chuyển đổi một mảng Java thành một ArrayList? Có ba phương pháp. Sử dụng phương thức .asList() Mảng Java có một công cụ tuyệt vời mà bạn có thể thấy khi xem API có tên là .asList() . Vì vậy, bạn chỉ có thể viết trong này:

boltInventory.asList(bolts);
Vấn đề với phương pháp này là nó không tạo ra một ArrayList thực sự. Những gì nó làm là tạo một Danh sách có kích thước cố định và không thể thay đổi. Vì vậy, bạn vẫn không thể thay đổi kích thước một cách năng động. Việc cố gắng thêm hoặc xóa các phần tử sẽ gây ra ngoại lệ. Vì vậy, mặc dù điều này có công dụng của nó, nhưng nó không phải là một chuyển đổi thực sự. Nhưng chúng ta có thể sử dụng cái này. Sử dụng .asList() làm Đối số Đây là cách thứ hai để chuyển đổi một mảng thành danh sách trong Java. Bởi vì phương thức .asList() tạo ra một Danh sách, nên chúng ta có thể sử dụng nó để chuyển một tham chiếu đến ArrayList thực tế của chúng ta. Đây là cách khởi tạo ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Điều này sẽ tạo ra một ArrayList có mười ô trống. Tuy nhiên, dấu () ở cuối có thể được sử dụng để chuyển một đối số để điền vào ArrayList. Vì vậy, kết hợp với phương thức .asList , bạn có:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Thao tác này chuyển Danh sách được tạo bởi phương thức .asList() vào ArrayList, vì vậy bây giờ bạn có thể tự động thao tác với nó khi cần. Sử dụng phương thức Collections.addAll() Một cách khác để chuyển đổi một Array thành ArrayList trong Java là sử dụng phương thức này. Nó chuyển nội dung của Array sang ArrayList. Cú pháp chung cho phương thức này là:

Collections.addAll(c, T);
Trong đó c là đích đến và T là những gì đang được thông qua. Vì vậy, đối với ví dụ của chúng ta, cú pháp sẽ như sau:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Điều này sẽ chuyển toàn bộ nội dung của Array bolts sang ArrayList mới. Chuyển đổi ArrayList thành Array Có thể đôi khi bạn cần chuyển đổi ArrayList thành Array trong Java. Nếu bạn làm như vậy, ArrayList có phương thức .toArray(a) , trong đó a là đích. Vì vậy, đối với ví dụ của chúng tôi, cú pháp sẽ là:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Khi bạn thay đổi danh sách thành mảng trong Java như thế này, bạn đang tạo một bản sao sâu. Nghĩa là, tất cả các tham chiếu đến Mảng đều khác với các tham chiếu đến ArrayList. Vì vậy, bạn có thể thao tác với dữ liệu trong Array mà không làm thay đổi dữ liệu được lưu trữ trong ArrayList. Sẽ rất hữu ích khi chuyển đổi danh sách java thành một mảng khi bạn cần kiểm tra dữ liệu.

Phần kết luận

Mảng rất hữu ích để truy cập nhanh và thao tác nhanh với các tập dữ liệu nhỏ hơn, nhưng việc không thể thay đổi kích thước của chúng có nghĩa là chúng nhanh chóng mất đi hiệu quả khi sử dụng lâu dài. ArrayList cung cấp cho bạn tính linh hoạt và khả năng chèn và xóa các nút khi cần. Học cách chuyển đổi Mảng Java thành Danh sách sẽ cải thiện hiệu quả tổng thể của các chương trình của bạn và cũng cải thiện thời gian chạy của chúng.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION