Trong bài viết này, chúng ta sẽ cùng tìm hiểu về lớp ArrayList trong Java. Chúng ta sẽ tìm hiểu về các hoạt động và phương thức của lớp này cùng với sự trợ giúp của các ví dụ dẫn chứng.
Lớp ArrayList trong Java
Lớp ArrayList cung cấp hàm của mảng có thể thay đổi kích thước. Nó thực hiện triển khai cho List Interface.
So sánh Mảng với ArrayList
Trong Java, chúng ta cần khai báo kích thước của một mảng trước khi có thể sử dụng nó. Khi kích thước của một mảng được khai báo, sẽ rất khó để có thể thay đổi nó. Để giải quyết điều này, chúng ta có thể sử dụng lớp ArrayList. Nó cho phép chúng ta tạo các mảng có thể thay đổi kích thước.
Không giống như mảng, ArrayList có thể tự động điều chỉnh kích thước của nó khi chúng ta thêm hoặc bớt các phần tử. Do đó, ArrayList còn được gọi là mảng động.
Khởi tạo ArrayList
Trước khi sử dụng ArrayList, trước tiên chúng ta cần thêm gói package java.util.ArrayList. Đây là cách chúng ta có thể tạo ArrayList trong Java:
1 |
ArrayList <Kiểu_dữ_liệu> mang = new ArrayList <> (); |
Ví dụ:
1 |
ArrayList<Integer> ArrayList_so_nguyen = new ArrayList<>(); |
Trong ví dụ trên, chúng ta đã sử dụng Integer, thay vì dùng int. Đó là bởi vì chúng ta không thể sử dụng các kiểu dữ liệu căn bản trong khi tạo một ArrayList. Thay vào đó, chúng ta phải sử dụng các lớp. Ở đây, Integer là lớp wrapper (lớp Wrapper là một cách để sử dụng các kiểu dữ liệu căn bản làm đối tượng) tương ứng của int.
Ví dụ:
1 2 3 4 5 6 7 8 9 |
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> a = new ArrayList<>(); a.add("Xin chao"); a.add("moi nguoi!"); System.out.println(a); } } |
Kết quả:
1 |
[Xin chao, moi nguoi!] |
Trong ví dụ trên, chúng ta đã tạo một ArrayList có tên là a. Ở đây, chúng ta đã sử dụng phương thức add() để thêm các phần tử. Chúng ta sẽ tìm hiểu thêm về phương thức add() ở phần sau của bài viết này.
Chú ý: Chúng ta cũng có thể tạo một ArrayList bằng giao diện Danh sách. Đó là bởi vì lớp ArrayList thực hiện triển khai cho giao diện Danh sách.
1 |
List<String> a = new ArrayList<>(); |
Các thao tác cơ bản trên ArrayList
Lớp ArrayList cung cấp nhiều phương thức khác nhau để thực hiện các thao tác khác nhau trên ArrayList. Chúng ta sẽ xem xét một số thao tác trong ArrayList thường được sử dụng trong bài viết này:
- Thêm phần từ
- Truy cập phần tử
- Thay đổi phần tử
- Loại bỏ các phần tử
- Thêm các phần tử vào ArrayList
1. Thêm phần tử
Để thêm một phần tử vào ArrayList, chúng ta sử dụng phương thức add() của lớp ArrayList.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 |
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> a = new ArrayList<>(); a.add("Xin chao"); a.add("moi nguoi!"); System.out.println(a); a.add(1, "tat ca"); System.out.println(a); } } |
Kết quả:
1 2 |
[Xin chao, moi nguoi!] [Xin chao, tat ca, moi nguoi!] |
Trong ví dụ trên, chúng ta đã tạo ArrayList. Ở đây, chúng ta đã sử dụng phương thức add() để thêm các phần tử. Bên cạnh đó, câu lệnh sau:
1 |
a.add(1, "tat ca"); |
Ở đây, chúng tôi đã sử dụng tham số là vị trí hay chỉ số của phần tử trong ArrayList. Nó là một tham số tùy chọn chỉ định vị trí mà phần tử mới sẽ được thêm vào.
2. Truy cập vào các phần tử
Để truy cập một phần tử từ ArrayList, chúng ta sử dụng phương thức get() của lớp ArrayList.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> a = new ArrayList<>(); a.add("Xin chao"); a.add("moi nguoi!"); System.out.println(a); a.add(1, "tat ca"); System.out.println(a); String chuoi_ky_tu = a.get(1); System.out.println(chuoi_ky_tu); } } |
Kết quả:
1 2 3 |
[Xin chao, moi nguoi!] [Xin chao, tat ca, moi nguoi!] tat ca |
Trong ví dụ trên, chúng ta đã sử dụng phương thức get() với tham số là giá trị 1. Ở đây, phương thức này sẽ trả về phần tử ở vị trí thứ 1 trong ArrayList (Vị trí đầu tiên sẽ bắt đầu từ chỉ số/ vị trí 0).
3. Thay đổi các phần tử
Để thay đổi phần tử của danh sách mảng, chúng ta sử dụng phương thức set() của lớp ArrayList.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> a = new ArrayList<>(); a.add("Xin chao"); a.add("moi nguoi!"); System.out.println(a); a.add(1, "tat ca"); System.out.println(a); a.set(0, "Cam on"); System.out.println(a); } } |
Kết quả:
1 2 3 |
[Xin chao, moi nguoi!] [Xin chao, tat ca, moi nguoi!] [Cam on, tat ca, moi nguoi!] |
4. Loại bỏ các phần tử
Để xóa một phần tử, chúng ta có thể sử dụng phương thức remove() của lớp ArrayList.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.ArrayList; class Main { public static void main(String[] args){ ArrayList<String> a = new ArrayList<>(); a.add("Xin chao"); a.add("moi nguoi!"); System.out.println(a); a.add(1, "tat ca"); System.out.println(a); String chuoi_ky_tu = a.remove(1); System.out.println(a); } } |
Kết quả:
1 2 3 |
[Xin chao, moi nguoi!] [Xin chao, tat ca, moi nguoi!] [Xin chao, moi nguoi!] |
Ở đây, phương thức remove() sẽ lấy số chỉ số làm tham số. Và, loại bỏ phần tử được chỉ định bởi chỉ số đã xác định.
Phương thức của lớp ArrayList
Trong phần trước, chúng ta đã tìm hiểu về phương thức add(), get(), set() và remove() của lớp ArrayList.
Bên cạnh những phương thức cơ bản trên, sau đây là một số phương thức ArrayList khác thường được sử dụng.
Phương thức | Mô tả |
size() | Trả về số phần tử. |
sort() | Sắp xếp các phần tử. |
clone() | Tạo một ArrayList tương tự. |
contains() | Tìm phần tử trong ArrayList và trả về giá trị true hoặc false. |
ensureCapacity() | Xác định số phần tử mà ArrayList có thể chứa. |
isEmpty() | Kiểm tra ArrayList rỗng hoặc không. |
indexOf() | Trả về vị trí của phần tử được xác định trong ArrayList. |
Ví dụ: Thực hiện vòng lặp cho ArrayList
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> a = new ArrayList<>(); a.add("Cam on"); a.add("moi nguoi"); a.add("rat nhieu!"); for (String i : a) { System.out.print(i); System.out.print(" "); } } } |
Kết quả:
1 |
Cam on moi nguoi rat nhieu! |
Chuyển đổi ArrayList sang mảng
Chúng ta có thể chuyển ArrayList thành một mảng bằng phương thức toArray().
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> a = new ArrayList<>(); a.add("Cam on"); a.add("moi nguoi"); a.add("rat nhieu!"); System.out.println(a); String[] mang = new String[a.size()]; a.toArray(mang); for (String i : mang) { System.out.println(i); } } } |
Kết quả:
1 2 3 4 |
[Cam on, moi nguoi, rat nhieu!] Cam on moi nguoi rat nhieu! |
Trong ví dụ trên, chúng tôi đã tạo một ArrayList có tên là a. Câu lệnh:
1 |
a.toArray(mang); |
Ở đây, phương thức toArray() sẽ thực hiện chuyển đổi ArrayList thành một mảng và lưu trữ nó trong đối tượng tên là mang.
Chuyển đổi mảng sang ArrayList
Chúng ta cũng có thể chuyển đổi mảng thành một ArrayList. Để thực hiện được điều đó, chúng ta sử dụng phương thức asList() của lớp Arrays. Để sử dụng asList(), trước tiên chúng ta phải thêm gói package java.util.Arrays.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 |
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { String[] mang = { "Hen gap", "lai", "moi nguoi", "trong bai sau!" }; ArrayList<String> a = new ArrayList<>(Arrays.asList(mang)); System.out.print(a); } } |
Kết quả:
1 |
[Hen gap, lai, moi nguoi, trong bai sau!] |
Trong chương trình trên, đầu tiên chúng ta tạo một mảng mang kiểu String. Trong biểu thức:
1 |
Arrays.asList(arr) |
Ở đây, phương thức asList() sẽ chuyển đổi mảng thành một ArrayList.
Chú ý: Chúng ta cũng có thể sử dụng phương thức Arrays.asList() để tạo và khởi tạo ArrayList trong một dòng.
Ví dụ:
1 2 3 4 5 6 7 8 9 |
import java.util.ArrayList; import java.util.Arrays; class Main { public static void main(String[] args) { ArrayList<String> a = new ArrayList<>(Arrays.asList("Hen gap", "lai", "moi nguoi", "trong bai sau!")); System.out.print(a); } } |
Kết quả:
1 |
[Hen gap, lai, moi nguoi, trong bai sau!] |
Chuyển đổi ArrayList thành String
Chúng ta có thể sử dụng phương thức toString() của lớp ArrayList để chuyển một ArrayList thành một chuỗi ký tự.
Ví dụ:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import java.util.ArrayList; class Main { public static void main(String[] args) { ArrayList<String> a = new ArrayList<>(); a.add("Hen gap lai"); a.add("moi nguoi"); a.add("trong bai sau!"); String chuoi_ky_tu = a.toString(); System.out.println(chuoi_ky_tu); System.out.println(chuoi_ky_tu.getClass().getName()); } } |
Kết quả:
1 2 |
[Hen gap lai, moi nguoi, trong bai sau!] java.lang.String |
Trên đây là khái niệm và ví dụ cơ bản về Lớp ArrayList trong Java. Hy vọng mọi người có thể áp dụng vào trong chương trình của mình. Mọi người hãy tiếp tục theo dõi các bài tiếp theo và cập nhật các bài mới nhất trên tek4 nhé!
P/s: Cảm ơn mọi người!