在线音乐播放网站模板郑州网站建设兄长好
web/
2025/9/30 1:26:08/
文章来源:
在线音乐播放网站模板,郑州网站建设兄长好,郑州的兼职网站建设,wordpress链接乱码java 用流创建流在许多情况下#xff0c;声明性代码#xff08;例如#xff0c;具有Streams的功能组合#xff09;提供了出色的代码指标。 通过该动手实验文章系列进行编码#xff0c;并成为Java Streams的主教练#xff0c;从而成为一名更好的Java程序员。 Streams的整… java 用流创建流 在许多情况下声明性代码例如具有Streams的功能组合提供了出色的代码指标。 通过该动手实验文章系列进行编码并成为Java Streams的主教练从而成为一名更好的Java程序员。 Streams的整个想法是代表一个数据流经的管道并且管道的功能将对数据进行操作。 这样可以表达对元素流的功能风格的操作。 本文是五分之一题您将直接学习如何成为流大师。 我们从基本的流示例开始然后进行更复杂的任务直到您知道如何将标准Java流连接到Cloud中的数据库。 Streams的整个想法是代表一个数据流经的管道并且管道的功能将对数据进行操作。 这样可以表达对元素流的功能风格的操作。 本文是五分之一题您将直接学习如何成为流大师。 我们从基本的流示例开始然后进行更复杂的任务直到您知道如何将标准Java流连接到Cloud中的数据库。 一旦完成了所有五篇文章您将能够大幅度减少代码库并知道如何在一瞬间为整个应用程序编写纯Java代码。 这是即将发表的文章的摘要 第1部分 创建流 第2部分 中级操作 第三部分终端操作 第4部分数据库流 第5部分使用流创建数据库应用程序 由于我们坚信“边干边学”的概念因此该系列由GitHub存储库进行了补充该存储库包含分为5个单元的Stream练习-每个单元对应于文章的主题。 README文件中提供了有关如何使用源代码的说明。 什么是Java流 Java Stream接口最初是在Java 8中引入的它与lambda一起成为Java开发的里程碑因为它极大地促进了声明性功能性编程风格。 如果您想了解更多有关声明式编码的优势请参考本文 。 可以将Java Stream可视化为数据流经的管道请参见下图。 管道的功能将通过例如过滤映射和分类项目来对数据进行操作。 最后可以执行终端操作以收集首选数据结构例如 List Array或Map 。 需要注意的重要一点是流只能使用一次。 流管道包含三个主要部分 流源中间操作零到很多和终端操作。 让我们看一个例子以了解我们将在整个系列中教的内容。 我们鼓励您阅读下面的代码并尝试弄清楚打印语句将导致的结果然后再阅读下一段。 List String list Stream.of(Monkey, Lion, Giraffe,Lemur).filter(s - s.startsWith(L)).map(String::toUpperCase).sorted().collect(toList());
System.out.println(list); 由于Stream API具有描述性并且通常使用起来非常直观因此无论您之前是否遇到过这些操作您都可能会对这些操作的含义有很好的了解。 我们从包含四个字符串的List流开始每个字符串代表非洲动物。 然后这些操作会过滤出以字母“ L”开头的元素将其余元素转换为大写字母然后以自然顺序在这种情况下表示字母顺序对其进行排序最后将它们收集到List 。 因此产生输出[“LEMUR”, “LION”] 。 重要的是要理解流是“惰性的”即终端操作是“请求”元素的在这种情况下 .collect()语句。 如果终端操作仅需要一个元素例如终端操作.findFirst() 则最多.findFirst()有一个元素到达终端操作并且提醒元素如果有的话将永远不会产生。资源。 这也意味着仅创建流通常是一种便宜的操作而消费它可能会很昂贵具体取决于流管道和流中潜在元素的数量。 在这种情况下流源是一个List尽管许多其他类型也可以充当数据源。 我们将在本文的其余部分中介绍一些最有用的源替代方法。 流主要适合于处理对象的集合并且可以对任何类型T元素进行操作。 尽管存在三种特殊的Stream实现 IntStream LongStream和DoubleStream仅限于处理相应的原始类型。 可以通过以下方式调用Stream.empty来生成任何这些类型的空Stream Stream T Stream.empty()
IntStream IntStream.empty()
LongStream LongStream.empty()
DoubleStream DoubleStream.empty() 在某些情况下空流确实很方便但是大多数时候我们对用元素填充流感兴趣。 这可以通过多种方式来实现。 我们将从IntStream的特殊情况入手因为它提供了多种有用的方法。 一个基本情况是在少量项目上生成流。 这可以通过使用IntStream.of列出整数来完成。 下面的代码产生元素1、2和3的简单流。 IntStream oneTwoThree IntStream.of(1, 2, 3); 如果项目数量增加手动列出所有元素可能很乏味。 如果我们对某个范围内的值感兴趣则命令.rangeClosed()更有效。 该操作包含所有内容这意味着以下代码将生成从1到9的所有元素的流。 IntStream positiveSingleDigits IntStream.rangeClosed( 1 , 9 ); .iterate()甚至是更强大的命令它可以在包括哪些数字方面提供更大的灵活性。 下面我们显示一个示例说明如何使用它生成具有2的幂的所有数字的Stream。 IntStream powersOfTwo IntStream.iterate( 1 , i - i * 2 ); 还有几种可能更意外的方式来生成Stream。 chars方法可用于流式处理 String 在这种情况下为元素“ A”“ B”和“ C”。 IntStream chars ABC .chars(); 还有一种生成随机整数流的简单方法。 IntStream randomInts new Random().ints(); 流现有数据收集是另一种选择。 我们可以流式传输现有Array的元素或者选择使用Stream.of()手动列出项目如前所示并在下面重复。 String[] array {Monkey, Lion, Giraffe, Lemur};
Stream String stream2 Stream.of(array);Stream String stream Stream.of(Monkey, Lion, Giraffe, Lemur); 流任何Collection也非常简单。 以下示例演示了如何使用简单命令流式传输List或Set .stream() 。 List String list Arrays.asList(Monkey, Lion, Giraffe, Lemur);
Stream String streamFromList list.stream();Set set new HashSet(list);
Stream String streamFromSet set.stream(); 有时流式传输文本文件的内容也很有用。 以下命令将提供一个Stream 将引用文件中的每一行作为单独的元素保存。 Stream String lines Files.lines(Paths.get(file.txt)); 现在我们已经使您熟悉了创建Stream的一些方法我们鼓励您克隆此GitHub存储库并开始练习。 本文的内容足以解决第一个称为“创建”的单元。 Unit1Create接口包含JavaDocs该JavaDocs描述Unit1MyCreate方法的预期实现。 public interface Unit1Create {/*** Creates a new Stream of String objects that contains* the elements A, B and C in order.** return a new Stream of String objects that contains* the elements A, B and C in order*/Stream String newStreamOfAToC(); 提供的测试例如Unit1MyCreateTest将用作自动评分工具让您知道您的解决方案是否正确。 如果尚未执行此操作请继续解决Unit1MyCreate类中的工作项。 “需要把他们全都抓到”。 在下一篇文章中我们将继续描述可应用于这些Stream并将它们转换为其他Stream的几种中间操作。 再见 翻译自: https://www.javacodegeeks.com/2019/10/become-a-master-of-java-streams-creating-streams.htmljava 用流创建流
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/84179.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!