07 2018 档案

摘要:在Java 7之前,并行处理集合非常麻烦。首先你要明确的把包含数据的数据结构分成若干子部分,然后你要把每个子部分分配一个独立的线程。然后,你需要在恰当的时候对他们进行同步来避免竞争,等待所有线程完成。最后,把这些部分结果合并起来。Java 7中引入了一个叫做 分支/合并的框架,让这些操作更稳定,更不 阅读全文
posted @ 2018-07-30 16:33 海盗船长 阅读(8772) 评论(0) 推荐(0)
摘要:在前面已经使用过collect终端操作了,主要是用来把Stream中的所有元素结合成一个List,在本章中,你会发现collect是一个归约操作,就像reduce一样可以接受各种做法作为参数,将流中的元素累计成一个汇总结果。 看这个例子:按照菜类进行分组 如果用java 8的话.. 收集器简介 在上 阅读全文
posted @ 2018-07-25 16:35 海盗船长 阅读(2254) 评论(0) 推荐(1)
摘要:在本节中将介绍Stream API支持的许多操作,这些操作可以完成更复杂的数据查询,如筛选、切片、映射、查找、匹配和归约。还有一些特殊的流如:数值流、来自文件和数组等多种来源的流。 筛选和切片 1.用谓词筛选 Streams接口支持filter方法,该操作会接受一个谓词作为参数,并返回一个包含所有符 阅读全文
posted @ 2018-07-07 12:00 海盗船长 阅读(1161) 评论(0) 推荐(0)
摘要:什么是流? 流是Java API的新成员,它允许你以声明性方式处理数据集合(通过查询语言来表达,而不是临时编写一个实现)。就现在来说你可以先把它当做是一个遍历数据集的高级迭代器。此外,流还支持并行,你无需写任何多线程的代码! 定义一个实物类 定义一个menu集合,以下栗子基于此menu 举个栗子:返 阅读全文
posted @ 2018-07-07 10:37 海盗船长 阅读(485) 评论(0) 推荐(0)
摘要:什么是Lambda? 可以把Lambda表达式理解为 简洁的表示可传递的匿名函数的一种方式:它没有名称,但它有参数列表、函数主体、返回类型,可能还有一个可以抛出的异常列表。 使用Lambda可以让你更积极的使用行为参数化,而不用像匿名类那样写很多模板代码。 Lambda表达式由三部分组成: 参数列表 阅读全文
posted @ 2018-07-06 16:14 海盗船长 阅读(1112) 评论(0) 推荐(0)
摘要:行为参数化就是可以帮助你处理频繁变更需求的一种软件开发模式。它意味着拿出一个代码块,把它准备好却不去执行它。这个代码块以后可以被你程序的其他部分调用,这意味着你可以推迟这块代码的执行。例如:你可以将代码块作为参数传递给另一个方法,稍后再去执行它。 应对不断变化的需求 1.第一次尝试:实现一个功能,从 阅读全文
posted @ 2018-07-05 18:43 海盗船长 阅读(1317) 评论(0) 推荐(0)