Java8:Lambda-Comparator
来源:互联网 发布:java工程师工作累不累 编辑:程序博客网 时间:2024/06/07 15:12
原文链接
经典的比较方法:
Comparator<Developer> byName = new Comparator<Developer>() { @Override public int compare(Developer o1, Developer o2) { return o1.getName().compareTo(o2.getName()); }};
对应使用Lambda表达式实现该方法:
Comparator<Developer> byName = (Developer o1, Developer o2)->o1.getName().compareTo(o2.getName());
例子:
1. 不使用Lambda表达式:
package com.mkyong.java8;import java.math.BigDecimal;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.List;public class TestSorting { public static void main(String[] args) { List<Developer> listDevs = getDevelopers(); System.out.println("Before Sort"); for (Developer developer : listDevs) { System.out.println(developer); } //sort by age Collections.sort(listDevs, new Comparator<Developer>() { @Override public int compare(Developer o1, Developer o2) { return o1.getAge() - o2.getAge(); } }); System.out.println("After Sort"); for (Developer developer : listDevs) { System.out.println(developer); } } private static List<Developer> getDevelopers() { List<Developer> result = new ArrayList<Developer>(); result.add(new Developer("mkyong", new BigDecimal("70000"), 33)); result.add(new Developer("alvin", new BigDecimal("80000"), 20)); result.add(new Developer("jason", new BigDecimal("100000"), 10)); result.add(new Developer("iris", new BigDecimal("170000"), 55)); return result; }}
- 使用Lambda表达式:
package com.mkyong.java8;import java.math.BigDecimal;import java.util.ArrayList;import java.util.List;public class TestSorting { public static void main(String[] args) { List<Developer> listDevs = getDevelopers(); System.out.println("Before Sort"); for (Developer developer : listDevs) { System.out.println(developer); } System.out.println("After Sort"); //lambda //listDevs.sort((o1, o2)->o1.getName().compareTo(o2.getName())); //lambda listDevs.sort((Developer o1, Developer o2)->o1.getAge()-o2.getAge()); //java 8 only, lambda also, to print the List listDevs.forEach((developer)->System.out.println(developer)); } private static List<Developer> getDevelopers() { List<Developer> result = new ArrayList<Developer>(); result.add(new Developer("mkyong", new BigDecimal("70000"), 33)); result.add(new Developer("alvin", new BigDecimal("80000"), 20)); result.add(new Developer("jason", new BigDecimal("100000"), 10)); result.add(new Developer("iris", new BigDecimal("170000"), 55)); return result; }}
阅读全文
0 0
- Java8:Lambda-Comparator
- java8 lambda取时间最新元素怎么写,不用Comparator<>
- java8-Lambda中比较器Comparator的使用
- Java8:Lambda表达式增强版Comparator和排序
- Java8:Lambda表达式增强版Comparator和排序
- java8 Comparator
- Java8 Comparator
- java8 Lambda
- Java8 Lambda
- Java8 Lambda
- java8 lambda
- java8-lambda
- java8-lambda
- java8 Lambda
- 【lambda】java8 lambda
- Java8 Lambda表达式教程
- Java8 Lambda表达式教程
- Java8: Lambda表达式语法
- OSG 单视图与相机:宽屏变形示例
- tensorflow 数据读取
- Android异常--java.io.FileNotFoundException下载文件时异常
- tomacat启动报错 Failed to start component....
- 一个DDOS病毒的分析(一)
- Java8:Lambda-Comparator
- 如何快速部署 Prometheus?- 每天5分钟玩转 Docker 容器技术(85)
- Ubuntu突然连接不上网
- 如何领会java中字节流和字符流的区别
- lintcode刷题——最大正方形
- Java并发编程-如何终止线程
- Lgoin 20171024
- java中重载与重写的区别
- 在当前应用的Activity 中如何对正在播放的music 进行控制