1. 使用java8 提取出 list 中 bean 的某一属性

	public static void main(String[] args) {
List<Student> stuList = new ArrayList<Student>();
Student st1 = new Student("123","aaa");
Student st2 = new Student("234","bbb");
Student st3 = new Student("345","ccc");
Student st4 = new Student("345","ccc");
stuList.add(st1);
stuList.add(st2);
stuList.add(st3);
stuList.add(st4);
//1.提取出list对象中的一个属性
List<String> stIdList1 = stuList.stream()
.map(Student::getId)
.collect(Collectors.toList());
stIdList1.forEach(s -> System.out.print(s+" "));
System.out.println();
System.out.println("----------"); //2.提取出list对象中的一个属性并去重
List<String> stIdList2 = stuList.stream()
.map(Student::getId).distinct()
.collect(Collectors.toList());
stIdList2.forEach(s -> System.out.print(s+" "));
/* 结果:
123 234 345 345
----------
123 234 345
*/
}

2. java8 中根据判断删除列表list中的元素

我们知道,在java8出lambda表达式之前,是不支持在循环中直接对list进行删除的。但是java8的新特性lambda表达式,帮我们实现了这个功能:

List<String> lists = new ArrayList<>();
lists.add("a");
lists.add("b");
lists.add("c"); //使用removeIf方法,->里的是判断条件,如果符合这个条件就删除。这里会删除带有c的元素
lists.removeIf(s -> s.contains("c"));

java8新特性大大的简化了我们的代码,使用更加的方便。

3. java8 获取 lsit 中bean 的某一属性最大的对象

Student student = studentList.stream().max(Comparator.comparing(Student::getClassCount)).get();

4. java8 计算代码运行时间

java8之前是这样计算代码运行时间的

long startTime=System.currentTimeMillis();   //获取开始时间
doSomeThing(); //测试的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间: "+(end-start)+"ms");

java8之后可以使用Instant获取时间戳来计算代码运行时间

	public static void main(String[] args) {
Instant start = Instant.now(); LongStream.rangeClosed( 0,110 )
//并行流
.parallel()
.reduce( 0,Long::sum ); LongStream.rangeClosed( 0,110 )
//顺序流
.sequential()
.reduce( 0,Long::sum ); Instant end = Instant.now();
System.out.println("耗费时间"+ Duration.between( start,end ).toMillis());
}

个人公众号《骇客与画家》,欢迎关注

最新文章

  1. VPN连接常见错误汇总
  2. ListView 的优化(原)
  3. java集合-集合大家族
  4. js动画之简单运动一
  5. Neo4j Index Notes
  6. MSCRM 仪表盘 控件 数量 更改(Change the maximum no. of controls on MSCRM Dashboards )
  7. ytu 1041: 迭代法求平方根(水题)
  8. POJ 1548 (二分图+最小路径覆盖)
  9. Android Cookie共享到WebView避免再次登录(保持登录状态)
  10. 【Android - MD】之TabLayout的使用
  11. 修改Android中strings.xml文件, 动态改变数据
  12. windows下搭建NFS服务器
  13. 20170714_js闭包变量重置
  14. Linux(Ubuntu)------常用命令汇总
  15. https请求之绕过证书安全校验相关配置
  16. java伪代码 大道至简第一章
  17. VS2017 编译Assimp
  18. 《DOM Scripting》学习笔记-——第三章 DOM
  19. 六、在U-boot中让LCD填充纯色
  20. Tomcat的下载、安装、启动与关闭

热门文章

  1. [bzoj4443] [loj#2006] [洛谷P4251] [Scoi2015]小凸玩矩阵
  2. spring整合Mybati时,只报空指针异常问题
  3. IO系统-基本知识
  4. Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩+路由跳转router-view渲染数据 路由跳转到同一个页面带参数ID 自动刷新数据
  5. Spring Cloud Alibaba 之 Sentinel 限流规则和控制台实例
  6. 平滑重启更新(GR机制)
  7. potel99se 文件损坏修复
  8. JVM性能分析 | 一次生产系统Full GC问题分析与排查总结
  9. Maven debug异常:Source not found.
  10. AI: 字体设计中的贝塞尔曲线