Java集合排序,字段为空的排在前面

需求:如果跟第三方调接口时,拿回来的列表数据中有的字段是空的,这时候是需要人工处理的,怎么让空的(null,”“)字段的数据展示在最前面?

实现:

class Demo {
    Integer id;
    String name;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Demo(Integer id, String name) {
        this.id = id;
        this.name = name;
    }
}

@Test
public void test3() {
    List<Demo> demos = new ArrayList<>();
    demos.add(new Demo(8, "222"));
    demos.add(new Demo(4, ""));
    demos.add(new Demo(3, "123"));
    demos.add(new Demo(6, ""));
    demos.add(new Demo(1, null));
    demos.add(new Demo(2, ""));
    demos.add(new Demo(5, "333"));
    demos.add(new Demo(7, null));
    demos.sort(Comparator.comparing(Demo::getName, Comparator.nullsFirst(String::compareTo)));
    for (Demo demo : demos) {
        System.out.println("id: " + demo.getId() + " name: " + demo.getName());
    }
}

执行结果:

id: 1 name: null
id: 7 name: null
id: 4 name:
id: 6 name:
id: 2 name: 
id: 3 name: 123
id: 8 name: 222
id: 5 name: 333

原文链接:

原文 

https://tomoya92.github.io/2020/03/30/java-sort/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » Java集合排序,字段为空的排在前面

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址