public static void main(String[] args) {
int n; // số phần tử trong danh sách
int node; // giá trị của phần tử trong danh sách
Scanner scanner = new Scanner(System.in);
Iterator<Integer> iterator;
// khai báo một danh sách liên kết lưu trữ các số nguyên dương
LinkedList<Integer> linkedList = new LinkedList<>();
// khai báo một danh sách liên kết lưu trữ các số lẻ
LinkedList<Integer> linkedListLe = new LinkedList<>();
System.out.println("Nhập vào số phần tử của danh sách: ");
n = scanner.nextInt();
System.out.println("Nhập giá trị của các phần tử trong danh sách: ");
for (int i = 0; i < n; i++) {
System.out.print("Nhập phần tử thứ " + i +": ");
node = scanner.nextInt();
linkedList.add(node);
}
// tạo bản sao của linkedList
// sử dụng phương thức clone()
LinkedList<Integer> linkedListCopy = (LinkedList<Integer>) linkedList.clone();
// HIỂN THỊ CÁC PHẦN TỬ LẺ CÓ TRONG DANH SÁCH RA MÀN HÌNH
for (int i = 0; i < n; i++) {
// số lẻ là số không chia hết cho 2
// chúng ta sẽ kiểm tra phần tử thứ i trong linkedList
// có chia hết chp 2 hay không
// nếu có thì thêm phần tử đó vào trong linkedListLe
if (linkedList.get(i) % 2 != 0) {
linkedListLe.add(linkedList.get(i));
}
}
System.out.println("\nCác phần tử lẻ có trong danh sách là: ");
iterator = linkedListLe.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + "\t");
}
// TÌM TRONG DANH SÁCH CÁC PHẦN TỬ CÓ GIÁ TRỊ CHIA HẾT CHO 2 VÀ 5
System.out.println("\nCác phần tử chia hết cho 2 và 5 có trong danh sách là: ");
for (int i = 0; i < n; i++) {
if ((linkedList.get(i) % 2 == 0) && (linkedList.get(i) % 5 == 0)) {
System.out.print(linkedList.get(i) + "\t");
}
}
// IN GIÁ TRỊ PHẦN TỬ CUỐI CÙNG TRONG DANH SÁCH LIÊN KẾT
// sử dụng phương thức getLast()
System.out.print("\nPhần tử cuối cùng trong danh sách = " +
linkedList.getLast() + "\n");
// KIỂM TRA PHẦN TỬ KẾ CUỐI CỦA DANH SÁCH LÀ CHẴN HAY LẺ
// phần tử kế cuối của danh sách
// là phần tử có chỉ số = size - 2.
int ptKeCuoi = linkedList.get(linkedList.size() - 2);
if (ptKeCuoi % 2 == 0) {
System.out.println("Phần tử kế cuối = " + ptKeCuoi + " là số chẵn");
} else {
System.out.println("Phần tử kế cuối = " + ptKeCuoi + " là số lẻ");
}
// ĐẾM SỐ PHẦN TỬ CÓ GIÁ TRỊ = x TRONG DANH SÁCH
// x được nhập từ bàn phím
int soPhanTu = 0; // số phần tử có giá trị = x trong danh sách
System.out.print("Nhập giá trị x: ");
int x = scanner.nextInt();
for (int i = 0; i < n; i++) {
if (linkedList.get(i) == x) {
soPhanTu++;
}
}
System.out.println("Số phần tử có giá trị = " + x +
" trong danh sách là " + soPhanTu);
// XUẤT RA MÀN HÌNH GIÁ TRỊ CỦA PHẦN TỬ THỨ k TRONG DANH SÁCH
// k NHẬP TỪ BÀN PHÍM
// giá trị của k phải lớn hơn 0 và nhỏ hơn số phần tử tối đa của danh sách
System.out.print("Nhập số k: ");
int k = scanner.nextInt();
while (k < 0 || k > n - 1) {
System.out.print("Nhập lại số k: ");
k = scanner.nextInt();
}
System.out.print("Giá trị của phần tử thứ " + k + " trong danh sách = " +
linkedList.get(k));
// XÓA PHẦN TỬ LẺ TRONG DANH SÁCH
// sử dụng phương thức remove()
for (int i = 0; i < n; i++) {
if (linkedList.get(i) % 2 != 0) {
linkedList.remove(linkedList.get(i));
// sau khi xóa phần tử lẻ thì sẽ giảm số phần tử đi 1
// và giảm i đi 1 (quay lại phần tử đứng trước nó)
// và duyệt lại danh sách
n--;
i--;
}
}
System.out.println("\nCác phần tử còn lại trong danh sách "
+ "sau khi xóa đi các phần tử lẻ: ");
iterator = linkedList.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + "\t");
}
// XÓA PHẦN TỬ CHẴN TRONG DANH SÁCH
// tương tự như khi xóa phần tử lẻ
int m = linkedListCopy.size();
for (int i = 0; i < m; i++) {
if (linkedListCopy.get(i) % 2 == 0) {
linkedListCopy.remove(linkedListCopy.get(i));
// sau khi xóa phần tử chẵn thì sẽ giảm số phần tử đi 1
// và giảm i đi 1 (quay lại phần tử đứng trước nó)
// và duyệt lại danh sách
m--;
i--;
}
}
System.out.println("\nCác phần tử còn lại trong danh sách "
+ "sau khi xóa đi các phần tử chẵn: ");
iterator = linkedListCopy.iterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + "\t");
}
}
Kết quả sau khi biên dịch chương trình:
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.