Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果列表项在一个变量中具有相同的值,则使用不同的变量比较列表_Java_Android - Fatal编程技术网

Java 如果列表项在一个变量中具有相同的值,则使用不同的变量比较列表

Java 如果列表项在一个变量中具有相同的值,则使用不同的变量比较列表,java,android,Java,Android,我有一个具有name(string)和age(int)属性的类Person: 我创建了一个人员列表,并使用年龄对他们进行了比较 List<Person> persons = new ArrayList<>(); persons.add("Andrew", 18); persons.add("Barry", 25); persons.add("Cynthia", 33); persons.add("Darwin", 33); Collections.sort(person

我有一个具有name(string)和age(int)属性的类Person:

我创建了一个人员列表,并使用年龄对他们进行了比较

List<Person> persons = new ArrayList<>();
persons.add("Andrew", 18);
persons.add("Barry", 25);
persons.add("Cynthia", 33);
persons.add("Darwin", 33);

Collections.sort(persons, new Comparator<Person>() {
    @Override
    public int compare(Person lhs, Person rhs) {
        return lhs.getAge() < rhs.getAge() ? -1 : lhs.getAge() == lhs.getAge() ? 0 : 1;
    }
});
List persons=new ArrayList();
添加(“Andrew”,18岁);
添加(“Barry”,25);
添加(“Cynthia”,33);
添加(“达尔文”,33);
Collections.sort(persons,newcomparator(){
@凌驾
公共整数比较(左侧人、右侧人){
返回lhs.getAge()

如果两个项目的年龄相等,如何使用名称来比较它们?

从Java 8开始,创建自定义的
比较器要容易得多,并且您可以比较多个字段

您可以使用以下代码:

Comparator.comparing(Person::getAge).thenComparing(Person::getName)
就这样

您可以使用它对收藏进行如下排序:

Collections.sort(filteredList, Comparator.comparing(Person::getAge).thenComparing(Person::getName))

从Java8开始,创建自定义的
比较器
要容易得多,并且可以比较多个字段

您可以使用以下代码:

Comparator.comparing(Person::getAge).thenComparing(Person::getName)
就这样

您可以使用它对收藏进行如下排序:

Collections.sort(filteredList, Comparator.comparing(Person::getAge).thenComparing(Person::getName))

向我们展示您当前的代码,我们可以告诉您如何扩展它。向我们展示您当前的代码,我们可以告诉您如何扩展它。