Trong bài viết này, chúng ta sẽ tìm hiểu cách chia một List thành hai nửa. List là tập hợp có thứ tự cho phép lưu trữ và truy xuất tuần tự.
Ví dụ minh họa
Đầu vào:
Danh sách đầu vào: [Java, Python, JavaScript, Shell, Scala]
Đầu ra mong muốn:
Nửa đầu: [Java, Python] Nửa sau: [JavaScript, Shell, Scala]
Thuật toán
- Bắt đầu
- Khai báo ba ArrayList:
input_list,first_list,second_list - Gán giá trị
- Lấy kích thước mảng bằng
.size() - Duyệt
input_list: phần tử chỉ số < size/2 thêm vàofirst_list, phần tử chỉ số >= size/2 thêm vàosecond_list - Hiển thị kết quả
- Kết thúc
Ví dụ 1: Xử lý trực tiếp trong main
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
System.out.println("Đã nhập các gói cần thiết");
List<String> input_list = new ArrayList<String>();
input_list.add("Java");
input_list.add("Python");
input_list.add("JavaScript");
input_list.add("Shell");
input_list.add("Scala");
System.out.println("Danh sách được định nghĩa: " + input_list);
List<String> first_list = new ArrayList<String>();
List<String> second_list = new ArrayList<String>();
int size = input_list.size();
System.out.println("\nNửa đầu:");
for (int i = 0; i < size / 2; i++)
first_list.add(input_list.get(i));
System.out.println(first_list);
System.out.println("Nửa sau:");
for (int i = size / 2; i < size; i++)
second_list.add(input_list.get(i));
System.out.println(second_list);
}
}
Kết quả
Đã nhập các gói cần thiết Danh sách được định nghĩa: [Java, Python, JavaScript, Shell, Scala] Nửa đầu: [Java, Python] Nửa sau: [JavaScript, Shell, Scala]
Ví dụ 2: Sử dụng phương thức tách biệt (OOP)
import java.util.ArrayList;
import java.util.List;
public class Demo {
static void split_list(List<String> input_list) {
List<String> first_list = new ArrayList<String>();
List<String> second_list = new ArrayList<String>();
int size = input_list.size();
System.out.println("\nNửa đầu:");
for (int i = 0; i < size / 2; i++)
first_list.add(input_list.get(i));
System.out.println(first_list);
System.out.println("Nửa sau:");
for (int i = size / 2; i < size; i++)
second_list.add(input_list.get(i));
System.out.println(second_list);
}
public static void main(String[] args) {
System.out.println("Đã nhập các gói cần thiết");
List<String> input_list = new ArrayList<String>();
input_list.add("Java");
input_list.add("Python");
input_list.add("JavaScript");
input_list.add("Shell");
input_list.add("Scala");
System.out.println("Danh sách được định nghĩa: " + input_list);
split_list(input_list);
}
}
Kết quả
Đã nhập các gói cần thiết Danh sách được định nghĩa: [Java, Python, JavaScript, Shell, Scala] Nửa đầu: [Java, Python] Nửa sau: [JavaScript, Shell, Scala]