手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
java8实战
java8实战
作者:
sundern
| 来源:发表于
2018-09-02 14:23 被阅读8次
术语:
1.函数式编程:代码传递给方法的一整套编程技巧
看完本书能了解到的:
--stream
--Stream API
--IntStream/DoubleStream/LongStream
--各种用流收集数据的应用(待充电):规约汇总、分组、分区、收集器接口
--Stream并行
--代码传递
--lambda
--函数式接口、方法引用、构造方法引用(待充电)
--各种复合:比较器复合、谓词复合、函数复合(待充电)
--Optional(待充电)
1.Stream API
筛选:filter(Class:isXXX())
消重:distinct()
截短:limit(2)
跳过:skip(2)
扁平化:map(Class:getXXX())--eg. map(String:length)
word = ["Hello","World"]
map(word->word.split("")) ~~~~~{[H,e,l,l,o],[W,o,r,l,d]} Stream
flatMap(word->word.split(""))~~~~~{H,e,l,l,o,W,o,r,l,d} Stream
至少一个匹配:anyMatch(Class:isXXX())
所有全部匹配:allMatch(Class:isXXX())
没有任何匹配:noneMatch(Class:isXXX())
返回任意元素:findAny()
返回第一元素:findFirst()
规约:reduce(0,Integer:sum) = reduce(0,(a,b) -> (a+b))
reduce(Integer:max) = reduce((x,y) -> x>y?x:y)
reduce(Integer:min) = reduce((x,y) - x
收集元素:collect(toList())
2.数值流
(1).Stream转化为IntStream:stream().mapToInt(Class:getXXX)
(2).IntStream转化为Stream:intStream.boxed()
(3).数值流操作:sum(),max(),rangClose(),range()
max()方法返回OptionalInt对象:因为无法区分默认值为0还是真的最大值为0
IntStream.rangeClose(1,100):1-100的100个数
IntStream.range(1,100):1-100不包括100的99个数
3.并行流
流的顺序化和并行化:sequential()/parallel(),同时出现多种时以最后一次为准
eg. Stream.iterate(1L,i -> i+1).limit(n).parallel().reduce(0L,Long:sum)
4.lambda
(1).使用:
a.定义接口:Runnable接口中有run方法
b.实现接口:使用lambda表达式实例化Runnable接口
Runnable r = () -> Sytem.out.println("Helle world");
c.传递接口并调用接口方法 :将r传递给需要的方法作为参数,实现中可调用r的run方法
process(Runnable r){ r.run ;} process(r);
(2).常用的接口:(Comparator)
Predicate<T>(test):T->boolean
Consumer<T>(accept) T->void
Function<T,R>(apply) T->R
5.方法引用
(1).调用类的静态方法:ClassName::staticMethod
(args) - > ClassName.staticMethod(args)
(2).引用对象的方法,对象本身是lambda的参数,ClassName:: instanceMethod 比如String:length
(arg0,rest) - > arg.instanceMethod(rest)
(3)调用已经存在的外部对象的方法:expr::instanceMethod 比如
() -> transaction.getValue() 写作 transaction::getValue
(args) -> expr.instanceMethod(args)
相关文章
网友评论
本文标题:
java8实战
本文链接:
https://www.haomeiwen.com/subject/svxmwftx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
摄影
故事
互联网
读书
旅行
热点阅读
黎明很美,你要酷酷的走下去
八月复盘
孤独,不是借口。
【最新面经】我是如何通过2019腾讯产品培训生面试的
错了,刚好遇见美
2018年8月份总结&9月份计划
那年和我一起高考的女孩
使用执行意图,而非目标意图
阳光小树林练习
2018-09-02
网友评论