91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
屏东县| 新兴县| 江门市| 龙川县| 喀喇| 盖州市| 黄龙县| 云南省| 靖边县| 昂仁县| 文昌市| 靖安县| 鲜城| 建始县| 梅河口市| 平谷区| 洪雅县| 镶黄旗| 冕宁县| 桦川县| 犍为县| 临江市| 井冈山市| 肃宁县| 郸城县| 武胜县| 淳化县| 疏附县| 涿鹿县| 青铜峡市| 海兴县| 建阳市| 七台河市| 蒙阴县| 东海县| 应用必备| 武清区| 左贡县| 汶川县| 抚远县| 尉犁县|