按照对象字段对ArrayList的列表进行排序,仅当字段存在时进行排序。
创始人
2024-08-23 19:00:45
0

要按照对象字段对ArrayList的列表进行排序,仅当字段存在时进行排序,可以使用Java的Comparator接口来实现。

下面是一个示例代码:

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

class 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;
    }
}

public class Main {
    public static void main(String[] args) {
        ArrayList studentList = new ArrayList<>();
        studentList.add(new Student("John", 20));
        studentList.add(new Student("Alice", 18));
        studentList.add(new Student("Bob", 22));
        studentList.add(new Student("Tom", 19));

        // 按照年龄字段对列表进行排序,仅当字段存在时进行排序
        Collections.sort(studentList, new Comparator() {
            @Override
            public int compare(Student s1, Student s2) {
                if (s1.getAge() != s2.getAge()) {
                    return Integer.compare(s1.getAge(), s2.getAge());
                }
                return 0;
            }
        });

        // 打印排序后的列表
        for (Student student : studentList) {
            System.out.println(student.getName() + " - " + student.getAge());
        }
    }
}

在上面的示例中,我们创建了一个Student类,包含name和age字段。我们使用ArrayList存储Student对象,并在列表中添加了一些示例数据。

然后,我们使用Collections.sort()方法对studentList进行排序。在排序过程中,我们使用匿名内部类实现了Comparator接口,并重写了compare()方法。在compare()方法中,我们首先检查两个学生对象的年龄字段是否相等,如果不相等则按照年龄的升序对学生对象进行排序。

最后,我们遍历排序后的列表,并打印每个学生对象的名称和年龄。输出结果将按照年龄的升序排列,仅当年龄字段存在时进行排序。

相关内容

热门资讯

我来教大家!wepoker透视... 我来教大家!wepoker透视挂底牌(辅助挂)竟然存在有挂(有挂神器辅助工具)1、任何透视是真的假的...
重要通知!佛手大菠萝13道挂哪... 重要通知!佛手大菠萝13道挂哪里(辅助挂)好像存在有挂(有挂秘笈辅助技巧)亲,关键说明,透视脚本安卓...
新手必备!hh poker透视... 新手必备!hh poker透视器下载(辅助挂)竟然有挂(有挂细节辅助器)1、许多玩家不知道辅助怎么退...
玩家攻略推荐!wepokerp... 玩家攻略推荐!wepokerplus万能挂(辅助挂)切实是真的有挂(有挂总结辅助方法)1、脚本辅助下...
实测必看!hhpoker作弊码... 实测必看!hhpoker作弊码怎么用(辅助挂)一贯是有挂(有挂功能辅助插件)1、完成有辅助插件,帮助...
一起来探讨!wpk俱乐部是真的... 一起来探讨!wpk俱乐部是真的吗(辅助挂)真是真的是有挂(有挂秘笈辅助教程)亲,关键说明,透视脚本安...
今日头条!wpk辅助购买(辅助... 今日头条!wpk辅助购买(辅助挂)总是真的是有挂(有挂方式辅助插件)1、这是跨平台的轻量版有透视,在...
重大推荐!wepoker怎么设... 重大推荐!wepoker怎么设置盖牌(辅助挂)一直是有挂(有挂方针辅助脚本)1、这是跨平台的轻量版有...
重大通报!佛手在线大菠萝为什么... 重大通报!佛手在线大菠萝为什么都输(辅助挂)一直是真的有挂(有人有挂辅助攻略)所有人都在同一条线上,...
今日公布!wpk刷入池率脚本(... 今日公布!wpk刷入池率脚本(辅助挂)好像存在有挂(有挂方略辅助软件)一、游戏安装教程牌型概率发牌机...