- 1、本文档共62页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.1.1 流规约 经常需要从流中获得一个结果,例如,返回流中元素的数量。此时,可以使用流的count()方法实现。这样的方法称为归约方法(reduction),规约是终止操作。 Stream接口提供了几个简单的归约方法,除count()方法外,还有max()和min()方法,它们分别返回流中的最大值和最小值。 需要注意的是,这两个方法返回一个OptionalT类型的值,它可能会封装返回值,也可能表示没有返回(当流为空时)。 6.1.1 收集结果 当处理完流后,可能需要查看一下结果或将结果收集到其他容器中。 可以调用toArray()方法将流中所有元素转换成数组。因为不可能在运行时创建一个泛型数组,所以表达式stream.toArray()返回一个Object[]类型数组。如果想获得相应类型数组,将类型传递给数组的构造方法: String[] result = stream.toArray(String[]::new); 6.1.1 收集结果 可以将流中元素收集到另一个集合,Stream有一个方便的方法collect(),它接受一个Collection接口实例。Collectors类为普通集合提供了大量工厂方法。 要将一个流收集到List或Set中,可以直接调用: ListString result = stream.collect(Collectors.toList()); SetString result = stream.collect(Collectors.toSet()); 6.1.1 基本类型流 对于基本类型,可以使用其包装类创建流,例如,StreamInteger。显然,将整数包装成包装类型效率低下。 为了直接将基本类型值存储到流中而不需要进行包装,Stream类库提供了IntStream、LongStream和DoubleStream类型,对short、char、byte、boolean类型使用IntStream类型,对float值使用DoubleStream类型。 6.1.1 基本类型流 要创建一个IntStream,可以调用IntStream.of()方法或Arrays.stream()方法。 IntStream stream = IntStream.of(1, 1, 2, 3, 5, 8, 11); stream = Arrays.stream(values, from, to); 6.1.1 并行流 大多数计算机都是多核的。在这些计算机上可以并行执行多个线程。使用并行流可以提高计算效率。 创建一个并行流。使用Collection的paralellStream()方法可以从任何集合获得一个并行流。 StreamString parallelWords = words.parallelStream(); 此外,使用paralell()方法可将顺序流转换成并行流。 StreamString parallelWords = Stream.of(wordArray).paralell(); 6.1.1 课堂讨论及训练 1. 定义一个泛型类PointT,其中包含x和y两个类型为T的成员,定义带两个参数的构造方法,为x和y定义setter和getter,另外定义translate()方法将点移到新的坐标。编写main()方法,创建PointInteger对象和PointDouble对象。 6.1.1 编程作业 11.2 定义一个类Animal表示动物,定义它的两个子类Bird表示鸟,Lion表示狮子。定义一个泛型类Cage表示笼子,它继承java.util.HashSet类。创建Animal、Bird和Lion对象,创建CageAnimal、CageBird 和CageLion对象。动物对象可以添加到这些笼子对象中吗?笼子对象之间具有子类关系吗?如果要创建一个能装各种动物的笼子,应该使用什么通配符声明Cage对象? 6.1.1 编程作业 11.8 假设Employee类包含一个int型成员id,如果要求Employee可按id值比较大小,请编写Employee类。编写程序,创建几个Employee对象,将它们存放到TreeSet中并输出。 谢 谢 * * * * * 6.1.1 使用迭代器对象 Iterator接口定义了3个方法。 boolean hasNext() 是否有下一个元素 E next() 返回下一个元素 void remove()
您可能关注的文档
最近下载
- 三氟乙酸酐 三氟醋酸酐MSDS危险化学品安全技术说明书.docx VIP
- 初中道德与法治《养成亲社会行为》优质教学设计、教案.pdf VIP
- 儿童血小板减少性紫癜护理查房.pptx
- 走进舞蹈艺术(首都师范)中国大学MOOC慕课 客观题答案.docx
- 中国古代书法发展史.ppt
- 初三女生会议-ppt课件.pptx VIP
- 桥梁设计桥梁施工.PPT
- 2024年柳州铁道职业技术学院单招职业技能测试题库及答案解析.docx
- 部编数学七年级上册专题4.7线段的动点综合问题大题专项训练(重难点培优)2023年7上册同步培优(解析版)【人教版】含答案.pdf VIP
- 三氟乙酸 三氟醋酸MSDS危险化学品安全技术说明书.docx VIP
文档评论(0)