java 8 二次排序,和空指针处理示例

本文提供了一个Java编程示例,展示了如何使用Comparator接口对自定义对象列表进行一次和二次排序,并处理了空值的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class MainTest {
public static void main(String[] args) {
List<DoubleSort> list = new ArrayList<DoubleSort>();
list.add(new DoubleSort(0, "1"));
list.add(new DoubleSort(3, "2"));
list.add(new DoubleSort(2, "22"));
list.add(new DoubleSort(3, "11"));
list.add(new DoubleSort(3, "222"));
// 简单排序
list.sort(Comparator.comparing(DoubleSort::getId));
// 二次排序
list.sort(Comparator.comparing(DoubleSort::getId).thenComparing(DoubleSort::getName));
list.add(new DoubleSort(3, null));
// 空指针处理空值放到前面
list.sort(Comparator.comparing(DoubleSort::getName, Comparator.nullsFirst(Comparator.naturalOrder())));
list.forEach(e -> System.out.println(e.getId() + "," + e.getName()));
}
}



public class DoubleSort {
int id;
String name;
public DoubleSort(int id, String name) {
super();
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值