java8 Comparator

环境:java8

public static void lam3()  {

//一般操作: 将字符串按照 长度降序排列
List<String> list = Arrays.asList("aaaaaa","bbbb","cc","dd","f");
// list.sort((s1,s2)->Integer.compare(s1.length(), s2.length()));
System.out.println(list);

//其实还可以进一步简化   直接接受一个需要排序的字段,底层会调用上面的方法
//    public static <T> Comparator<T> comparingInt(ToIntFunction<? super T> keyExtractor) 
// list.sort(Comparator.comparing(s->s.length()));
// list.sort(Comparator.comparingInt(s->s.length()));
list.sort(Comparator.comparingInt(String::length));
System.out.println(list);

}



//按照年龄排序,相同的按照工资升序排序
@Test
public void lam4() {
List<Employee> list=Arrays.asList(
new Employee("小明", 12, 8000),
new Employee("詹丹", 84, 7000),
new Employee("菲菲", 36, 7500),
new Employee("君君", 36, 5000),
new Employee("洋洋", 12, 6000)
);

list.sort(Comparator.comparingInt(Employee::getAge)
           .reversed()
           .thenComparingDouble(Employee::getSalary));
list.forEach(System.out::println);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值