且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在Java中实现比较器

更新时间:2021-09-06 08:34:15

可比$ c>和 Comparator 是两个不同的接口,用于相似的目的。 Collections.sort 想要一个 Comparator ,这使您可以灵活地修改可以比较对象的默认方式(或不比较) ,取决于您要实现的目标)。

Comparable and Comparator are two different interfaces, used for similar purposes. Collections.sort wants a Comparator and this allows you the flexibility to modify the default way objects might be compared (or not, depends on what you want to achieve)

首先创建一个基础对象,其中包含您需要存储的值...

Start by creating a base object, which contains the values you need to store...

public class Solomon {
    private int age;
    private String name;

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

    public int getAge() {
        return age;
    }

    public String getName() {
        return name;
    }

}

然后创建比较器可以比较所罗门实例的方式...

Then create a Comparator which can compare the instances of Solomon the way you need to...

public class SolomanAgeComparator implements Comparator<Solomon> {

    @Override
    public int compare(Solomon o1, Solomon o2) {
        return o1.getAge() - o2.getAge();
    }

}

和/或

public class SolomanNameComparator implements Comparator<Solomon> {

    @Override
    public int compare(Solomon o1, Solomon o2) {
        return o1.getName().compareTo(o2.getName());
    }

}

然后使用其中一个对列表值...

Then use either one to sort the List of values...

List<Solomon> a1 = new ArrayList<Solomon>();
a1.add(new Solomon(21, "solomon"));
a1.add(new Solomon(26, "solomons"));
a1.add(new Solomon(20, "solomonjking"));
Collections.sort(a1, new SolomanNameComparator());