近期学习 java8 lambda 和stream 总结
虽然现在JAVA10 已经出了,但是之前没有来得及看lambda,最近学习了下,所以总结一波。
写法:
(参数) -> 表达式
(参数) -> {表达式}
(参数) -> {表达式+return}
lambda主要用于表示 匿名类,一般这些接口都只有一个方法
1.Runnable,Comparable,Comparator
2.Consumer
3.Stream所用到的一些匿名类,以及stream的一些基本操作 主要用于处理集合
首先指出3点
(1)stream 有单孔流stream 和 多孔流 ,单孔流是对集合元素一个一个按顺序操作,多孔流为 并行操作且无序(大任务分成小的任务执行,底层用线程池实现,若要对集合的元素进行相同的操作不在意顺序关系,可调用)
(2)stream 流 无法重用,第一次调用后会关闭 若重复利用会报错:stream has already been operated upon or closed
(3)可利用Supplier 对流进行重用