qmediaplayer获取流类型_Java 流API

7aeef13314bbd03c99ced21338b47764.png

流相关的接口和类在java.util.stream包中。

AutoCloseable接口来自java.lang包。

所有流接口从继承自AutoCloseable接口的BaseStream接口继承。

AutoCloseable

|

+--BaseStream

|

+--IntStream

|

+--LongStream

|

+--DoubleStream

|

+--Stream

如果流使用集合作为其数据源,并且集合不需要关闭。

如果流基于可关闭的数据源(例如文件I/O通道),那么我们可以使用try-with-resources语句创建流,以使其自动关闭。

BaseStream

BaseStream接口定义所有类型的流的所有方法。

  • Iterator iterator()
  • 终端操作
  • 返回流的迭代器。
  • sequential()
  • 中间操作
  • 返回顺序流。 如果流已经是顺序的,则它返回自身。 它将并行流转换为顺序流。
  • parallel()
  • 中间操作
  • 返回并行流。 如果流已经是并行的,则它返回自身。 它将并行流转换为顺序流。
  • boolean isParallel()
  • 如果流是并行,则返回true,否则返回false。
  • 在调用终端流操作方法后调用此方法可能会产生不可预测的结果。
  • unordered()
  • 中间操作
  • 返回流的无序版本。 如果流已经是无序的,则它返回自身。

Stream 接口表示元素类型T的流。

流 表示学生对象流。

Stream 接口包含诸如filter(),map(),reduce(),collect(),max(),min()等。

当使用原始类型时,我们可以使用三个专门的流接口,称为IntStream,LongStream和DoubleStream。

这些接口提供了处理原始值的方法。

对于其他基本类型,例如float,short,byte,我们仍然可以使用三个专用流接口。

在下面的代码中,我们将使用stream来计算列表中所有奇整数的平方和。

我们将使用以下步骤进行计算。

创建流

Collection接口中的stream()方法返回一个顺序流。 这样,集合充当数据源。

下面的代码创建一个List 并从列表中获取一个Stream

List numbersList = Arrays.asList(1, 2, 3, 4, 5);Stream numbersStream = numbersList.stream();

过滤流

如果指定的谓词对于该元素返回真,Stream filter()使用Predicate来保留元素。

以下语句获取仅奇数整数的流:

Stream< Integer> oddNumbersStream = numbersStream.filter(n - > n%2 == 1);

映射流

Stream< T> map()使用一个Function来映射每个元素在流中创建新流。

以下语句将流映射到其正方形:

Stream aStream = stream.map(n -> n * n);

Reduce流

reduce(T identity,BinaryOperator累加器)将流减少到单个值。

它采用一个初始值和一个 BinaryOperator 作为参数的累加器。

reduce(T identity,BinaryOperator< T>累加器)使用所提供的初始值和关联累积函数对该流的元素执行减少,并返回减小的值。

这相当于:

T result = identity;for (T element : this stream) result = accumulator.apply(result, element)return result;

以下代码将流中的所有整数相加。

int sum = aStream.reduce(0, (n1, n2) -> n1 + n2);

Integer.sum()方法执行两个整数的和。

我们可以使用方法引用重写代码。

int sum = aStream.reduce(0, Integer::sum);

Together

以下代码将每个步骤链接在一起。

import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) { List numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream() .filter(n -> n % 2 == 1) .map(n -> n * n) .reduce(0, Integer::sum); System.out.println(sum); }}

上面的代码生成以下结果。

5534195cdf3652c8c2e205700f945f88.png

有序流与无序流

流可以是有序的或无序的。

有序流保持其元素的顺序。

Streams API可以将有序流(其可以表示有序数据源,例如列表或有序集)转换成无序流。

我们还可以通过应用排序中间操作将无序流转换为有序流。

import java.util.Arrays;import java.util.List;public class Main { public static void main(String[] args) { List numbers = Arrays.asList(3,7,9,3,1,2,1, 2, 3, 4, 5); numbers.stream() .filter(n -> n % 2 == 1) .sorted() .forEach(System.out::println); }}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279368.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

田刚:庞加莱猜想与几何

&#xff08;作者 田刚&#xff09; 时间&#xff1a;2015年11月1日 地点&#xff1a;北京大学北京国际数学研究中心 主题&#xff1a;未来论坛“理解未来”讲座北大专场&#xff1a;庞加莱猜想与几何 田刚&#xff1a; 非常高兴能够有这个机会来参加未来论坛讲演。我今天要讲的…

进化:从孤胆极客到高效团队_极客学校:学习Windows 7 –远程管理

进化:从孤胆极客到高效团队In this installation of Geek School, we look at how we can administer our machines remotely using Remote Assistance, Remote Desktop, Windows Remote Management also known as WinRM, and PowerShell. 在此Geek School安装中&#xff0c;我…

打印墨水调钢笔墨水_如何节省墨水并改善网站打印质量

打印墨水调钢笔墨水Printing out web pages you want a hard copy of can be a little hit and miss. Unlike other documents, it is not easy to tell exactly how many pieces of paper will be needed, and whether or not there will be any awkward clipping. Add to thi…

highcharts 怎么去掉鼠标悬停效果_练瑜伽减肥没效果什么原因?

没有心的参与&#xff0c;瑜伽就不是瑜伽曾经有很多人问&#xff1a;自己想用瑜伽来减肥&#xff0c;但练习瑜伽这么久&#xff0c;为什么还是减不下来&#xff1f;一点效果都没有。瑜伽是什么&#xff1f;瑜伽只是一种单纯的运动吗&#xff1f;只让身体参与进去就可以了吗&…

Java基础学习总结(23)——GUI编程

2019独角兽企业重金招聘Python工程师标准>>> 一、AWT介绍 所有的可以显示出来的图形元素都称为Component&#xff0c;Component代表了所有的可见的图形元素&#xff0c;Component里面有一种比较特殊的图形元素叫Container&#xff0c;Container(容器)在图形界面里面…

在Windows 7或Vista(或Windows 8.x,Sorta)上禁用Aero

The Windows Aero Glass interface for Windows 7 or Vista requires a decent video card, you won’t be able to use it on an old clunker computer. For those worried about performance, sometimes squeezing every last drop requires disabling Aero. Windows 7或Vist…

macos mojave_使Ubuntu看起来像macOS Mojave的黑暗模式

macos mojaveIf you’re a Linux user who likes the look of the dark mode coming in macOS Mojave, you’re in luck: there’s a GTK theme just for you. 如果您是Linux用户&#xff0c;并且喜欢macOS Mojave中的黑暗模式外观&#xff0c;那么您很幸运&#xff1a;这里有一…

html的列表标签

列表一般应用在布局中的新闻标题列表和文章标题列表以及网页菜单等。 例如这个就是一个列表&#xff1a; 列表标签有几种&#xff0c;分别是有序列表&#xff0c;无序列表&#xff0c;定义列表。 有序列表<!DOCTYPE html> <html lang"en"> <head>&…

撬锁锤怎么用_安全锤是啥?消防蜀黍教你怎么选?如何快速破拆逃生?

逃生锤又叫安全锤&#xff0c;生活中很多地方都可以看到&#xff0c;公交车、地铁窗边都少不了它们的身影它的款式也是五花八门&#xff0c;那么问题来了当遇到突发状况被困车内时&#xff0c;哪种破窗工具最有效&#xff1f;又该如何快速逃生自救&#xff1f;近日&#xff0c;…

WSUS技术概览

WSUS新功能展示: 支持更多微软产品更新-->Windows Office MS SQL Server Exchange ......基于产品及分类筛选下载更新的能力更多语言支持定位更新目标计算机或计算机组的能力-->分发前,测试更新; 保护运行特定应用程序的计算机; 灵活使用Deadline; ...... 见下…

Java基础学习总结(16)——Java制作证书的工具keytool用法总结

2019独角兽企业重金招聘Python工程师标准>>> 一、keytool的概念 keytool 是个密钥和证书管理工具。它使用户能够管理自己的公钥/私钥对及相关证书&#xff0c;用于&#xff08;通过数字签名&#xff09;自我认证&#xff08;用户向别的用户/服务认证自己&#xff09…

什么是文件扩展名?

A file extension, or filename extension, is a suffix at the end of a computer file. It comes after the period, and is usually two-four characters long. If you’ve ever opened a document or viewed a picture, you’ve probably noticed these letters at the end…

[项目总结]在ios中使用soundtouch库实现变声

这篇文章是项目总结了。 做了段时间的项目&#xff0c;过程中也遇到了很多麻烦&#xff0c;但是好在终于都解决了&#xff0c;这里是这里是项目之后凭着记忆总结出来&#xff0c;大家有遇到同样的问题&#xff0c;希望能参考了&#xff0c;但是我记忆可能不太好了&#xff0c;要…

Myeclipse优化配置

2019独角兽企业重金招聘Python工程师标准>>> 作为企业级开发最流行的工具&#xff0c;用Myeclipse开发java web程序无疑是最合适的&#xff0c;java web前端采用jsp来显示&#xff0c;myeclipse默认打开jsp的视图有卡顿的现象&#xff0c;那么如何更改jsp默认的打开…

Google在Android P中隐藏了真棒的按应用自动旋转功能

Historically, when you turn your phone on its side, the screen rotates. To keep this from happening, you can lock the orientation. But with Android P, Google included a way to have to the best of both worlds. 从历史上看&#xff0c;当您将手机侧放时&#xff…

2015年终总结

2019独角兽企业重金招聘Python工程师标准>>> 2015年终总结 用勇气改变可以改变的事情&#xff0c;用胸怀接受不可以改变的事情&#xff0c;然后用智慧分辨两者的不同&#xff01; 短信平台sms 影像系统fastfile 统一信任中心uts(单点登录&#xff09; 简历增加 总结…

笔记本本地连接显示电缆拔出_没有安全电缆槽的笔记本电脑如何固定?

笔记本本地连接显示电缆拔出Historically laptops included a slot in the side for attaching security cables–as seen in the photo here–but increasingly more slender laptops like ultrabooks are omitting the lock-slot from their case design. How do you properl…

JMeter中添加dubbo相关插件异常问题解决

从网上下载了一个dubbo的插件&#xff0c;然后放到JMeter的/lib/ext目录下&#xff1a; 然后启动直接异常 发现启动不了&#xff0c;然后下载了一个全新的JMeter3.2将dubbo插件放到同样的目录&#xff0c;启动&#xff0c;没有问题&#xff1a; 那应该不是JMeter本身的问题 通过…

Servlet异常

一、http status 404 解决办法&#xff1a;检查web.xml中的配置文件&#xff0c;发现jsp页面的提交路径action和web.xml中的路径不匹配&#xff0c;将其修改过来。转载于:https://www.cnblogs.com/ltfxy/p/9671256.html

disk genius_如何预约Apple Store商店或Genius Bar

disk geniusMaybe you have a cracked iPhone screen or your MacBook Pro isn’t charging properly. Whatever your issue, there’s an app for that! If you need tech support or repairs for your Apple device, it’s easy to set up a service appointment right from …