亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

java有序列表能否自定義排序規則

小樊
82
2024-07-24 00:00:05
欄目: 編程語言

是的,Java中的有序列表(如ArrayList、LinkedList等)可以通過實現Comparator接口或Comparable接口來自定義排序規則。具體來說,實現Comparator接口可以在不改變對象原始類的情況下對對象進行排序,而實現Comparable接口則可以在對象類中定義默認的自然排序規則。

使用Comparator接口時,需要實現compare()方法來定義對象的比較規則,然后使用Collections.sort()方法來對列表進行排序。示例代碼如下:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class CustomSortExample {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("apple");
        list.add("banana");
        list.add("cherry");
        
        // 自定義排序規則:按字符串長度遞增排序
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String s1, String s2) {
                return s1.length() - s2.length();
            }
        });
        
        System.out.println(list); // 輸出:[apple, banana, cherry]
    }
}

使用Comparable接口時,需要在對象類中實現compareTo()方法來定義對象的自然排序規則,然后直接使用Collections.sort()方法來對列表進行排序。示例代碼如下:

import java.util.ArrayList;
import java.util.Collections;

public class CustomSortExample {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        list.add(new Student("Alice", 20));
        list.add(new Student("Bob", 25));
        list.add(new Student("Charlie", 22));
        
        Collections.sort(list);
        
        for (Student student : list) {
            System.out.println(student.getName() + " " + student.getAge());
        }
    }
}

class Student implements Comparable<Student> {
    private String name;
    private int age;
    
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
    
    public String getName() {
        return name;
    }
    
    public int getAge() {
        return age;
    }
    
    @Override
    public int compareTo(Student o) {
        return this.age - o.age;
    }
}

以上代碼將會按照學生年齡從小到大的順序進行排序。

0
扶沟县| 抚顺市| 吉隆县| 万源市| 鲜城| 连南| 易门县| 古浪县| 凤山县| 南雄市| 镇巴县| 遵义县| 黄平县| 永新县| 澎湖县| 常德市| 获嘉县| 女性| 蒙山县| 宿松县| 视频| 昌乐县| 新昌县| 新营市| 卫辉市| 石景山区| 桐柏县| 镇安县| 射阳县| 广南县| 土默特右旗| 涞源县| 太湖县| 奈曼旗| 海门市| 兰溪市| 滁州市| 鄂托克旗| 扎鲁特旗| 静安区| 阿勒泰市|