Trong bài viết này, chúng ta sẽ tìm hiểu cách nối (join) hai List trong Java. Lớp ArrayList mở rộng AbstractList và triển khai interface List. ArrayList hỗ trợ mảng động có thể mở rộng theo nhu cầu.
Ví dụ minh họa
Đầu vào:
Danh sách 1: [Java, Python] Danh sách 2: [Mysql, Redshift]
Đầu ra mong muốn:
Danh sách sau khi nối: [Java, Python, Mysql, Redshift]
Thuật toán
- Bắt đầu
- Khai báo hai List:
input_list_1vàinput_list_2 - Gán giá trị
- Sử dụng
addAll()để nối hai danh sách - Hiển thị kết quả
- Kết thúc
Ví dụ 1: (Code mẫu trong bài gốc có lỗi logic - dưới đây là phiên bản sửa đúng)
Bài gốc ví dụ 1 nhầm lẫn với LinkedList.get(). Dưới đây là code đúng cho việc nối 2 list:
import java.util.ArrayList;
import java.util.List;
public class Demo {
static void join_lists(List<String> input_list_1, List<String> input_list_2) {
List<String> result_list = new ArrayList<String>();
result_list.addAll(input_list_1);
result_list.addAll(input_list_2);
System.out.println("\nDanh sách sau khi nối: " + result_list);
}
public static void main(String[] args) {
List<String> input_list_1 = new ArrayList<String>();
input_list_1.add("Java");
input_list_1.add("Python");
System.out.println("Danh sách 1: " + input_list_1);
List<String> input_list_2 = new ArrayList<String>();
input_list_2.add("Mysql");
input_list_2.add("Redshift");
System.out.println("Danh sách 2: " + input_list_2);
join_lists(input_list_1, input_list_2);
}
}
Kết quả
Danh sách 1: [Java, Python] Danh sách 2: [Mysql, Redshift] Danh sách sau khi nối: [Java, Python, Mysql, Redshift]
Ví dụ 2: Cách viết OOP (giống ví dụ 1)
Cấu trúc tương tự ví dụ 1, tách logic nối list vào phương thức join_lists().