Sort tăng và giảm dần trong LinkedList với ví dụ cụ thể

LinkedList là một cấu trúc tuyến tính gồm mỗi node chứa data và con trỏ đến phần tử tiếp theo. Cho nên việc sắp xếp trên ArrayList sẽ khác với ArrayList. Thật may chúng ta được java cung cấp sẵn các hàm sắp xếp, chúng ta sẽ không cần phải implement lại đâu nhé. Giờ chúng ta sẽ xem sắp xếp trên LinkedList sẽ như thế nào.

Ví dụ cho một LinkedList chứa các phần tử [20, 5, 0, 8, -1] . Ví dụ này sẽ được giải trong các phần dưới đây

Sort() trong LinkedList

Sắp xếp tăng dần

import java.util.LinkedList;

public class Main {
    public static void main(String args[]) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(20);
        linkedList.add(5);
        linkedList.add(0);
        linkedList.add(8);
        linkedList.add(-1);
        linkedList.sort(((o1, o2) -> o1 - o2));
        System.out.println(linkedList);
    }
}

Output: [-1, 0, 5, 8, 20]

Sắp xếp giảm dần

import java.util.LinkedList;

public class Main {
    public static void main(String args[]) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(20);
        linkedList.add(5);
        linkedList.add(0);
        linkedList.add(8);
        linkedList.add(-1);
        linkedList.sort(((o1, o2) -> o2 - o1));
        System.out.println(linkedList);
    }
}

Output: [20, 8, 5, 0, -1]

Sort() trong LinkedList kết hợp với Comparator

Sắp xếp tăng dần

import java.util.Comparator;
import java.util.LinkedList;

public class Main {
    public static void main(String args[]) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(20);
        linkedList.add(5);
        linkedList.add(0);
        linkedList.add(8);
        linkedList.add(-1);
        linkedList.sort(Comparator.comparingInt(o -> o));
        System.out.println(linkedList);
    }
}
// Output: [-1, 0, 5, 8, 20]

Sắp xếp giảm dần

import java.util.Comparator;
import java.util.LinkedList;

public class Main {
    public static void main(String args[]) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(20);
        linkedList.add(5);
        linkedList.add(0);
        linkedList.add(8);
        linkedList.add(-1);
        linkedList.sort(Comparator.comparingInt(o -> (int)o).reversed());
        System.out.println(linkedList);
    }
}
// Output: [20, 8, 5, 0, -1]

Sort trong Collections

Hàm sort của Collections tương tự như hàm sort của LinkedList

import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedList;

public class Main {
    public static void main(String args[]) {
        LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(20);
        linkedList.add(5);
        linkedList.add(0);
        linkedList.add(8);
        linkedList.add(-1);
        Collections.sort(linkedList, Comparator.comparingInt(o -> o));
        
        System.out.println(linkedList);
    }
}
// Output: [-1, 0, 5, 8, 20]

‹Previous Next›

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x