Java " />

扫描二维码下载沐宇APP

沐宇

微信扫码使用沐宇小程序

沐宇

Java闆嗗悎鑳藉惁鑷畾涔夋帓搴?

扬州沐宇科技
2024-06-27 19:18:28
Java

Java闆嗗悎鍙互鑷畾涔夋帓搴忋€傛湁涓ょ鏂规硶鍙互瀹炵幇鑷畾涔夋帓搴忥細浣跨敤Comparator鎺ュ彛鍜孋omparable鎺ュ彛銆?/p>

  1. 浣跨敤Comparator鎺ュ彛锛氶€氳繃瀹炵幇Comparator鎺ュ彛鏉ュ畾涔夋瘮杈冭鍒欙紝鍙互鍦ㄤ笉淇敼鍘熷瀵硅薄鐨勬儏鍐典笅杩涜鎺掑簭銆侰omparator鎺ュ彛鏈変竴涓猚ompare(T o1, T o2)鏂规硶锛屽彲浠ュ湪鍏朵腑瀹氫箟鑷畾涔夌殑姣旇緝瑙勫垯銆傜劧鍚庡皢Comparator瀵硅薄浼犻€掔粰闆嗗悎鐨勬帓搴忔柟娉曪紝濡侰ollections.sort()鎴朅rrays.sort()銆?/li>

绀轰緥浠g爜锛?/p>

import java.util.Comparator;

public class CustomComparator implements Comparator<Integer> {
    @Override
    public int compare(Integer o1, Integer o2) {
        // 鑷畾涔夋瘮杈冭鍒欙紝姣斿鎸夌収鏁板瓧澶у皬浠庡ぇ鍒板皬鎺掑簭
        return o2 - o1;
    }
}

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(3);
        list.add(1);
        list.add(2);

        CustomComparator customComparator = new CustomComparator();
        Collections.sort(list, customComparator);

        System.out.println(list); // 杈撳嚭锛歔3, 2, 1]
    }
}
  1. 浣跨敤Comparable鎺ュ彛锛氶€氳繃瀹炵幇Comparable鎺ュ彛鏉ュ畾涔夊璞$殑鑷劧椤哄簭锛屽彲浠ョ洿鎺ヨ皟鐢ㄩ泦鍚堢殑鎺掑簭鏂规硶杩涜鎺掑簭銆侰omparable鎺ュ彛鏈変竴涓猚ompareTo(T o)鏂规硶锛岄渶瑕佸湪鍏朵腑瀹氫箟瀵硅薄鐨勬瘮杈冭鍒欍€?/li>

绀轰緥浠g爜锛?/p>

public class Student implements Comparable<Student> {
    private String name;
    private int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public int compareTo(Student o) {
        // 鑷畾涔夋瘮杈冭鍒欙紝姣斿鎸夌収骞撮緞浠庡皬鍒板ぇ鎺掑簭
        return this.age - o.age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        students.add(new Student("Alice", 20));
        students.add(new Student("Bob", 18));
        students.add(new Student("Charlie", 25));

        Collections.sort(students);

        for (Student student : students) {
            System.out.println(student);
        }
    }
}

浠ヤ笂鏄袱绉嶈嚜瀹氫箟鎺掑簭鐨勬柟娉曪紝寮€鍙戜汉鍛樺彲浠ユ牴鎹疄闄呴渶姹傞€夋嫨鍚堥€傜殑鏂规硶鏉ュ疄鐜拌嚜瀹氫箟鎺掑簭銆?/p>

扫码添加客服微信