需求:如果跟第三方调接口时,拿回来的列表数据中有的字段是空的,这时候是需要人工处理的,怎么让空的(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
原文链接: