java 8 学习笔记 流 collect map filter flatMap max 和min_无聊的小蚂蚁的博客-程序员宅基地

技术标签: java  java8  

1.

collect(toList()) 方法由Stream 里的值生成一个列表,是一个及早求值操作。

List<String> collected = Stream.of("a", "b", "c")
        .collect(Collectors.toList());

collected.forEach(System.out::println);

2.

map 操作就可以使用该函数,将一个流中的值转换成一个新的流

List<String> collected = Stream.of("a", "b", "hello")
        .map(string -> string.toUpperCase())➊
                       .collect(Collectors.toList());

collected.forEach(System.out::println);

传给map ➊的Lambda表达式只接受一个String 类型的参数,返回一个新的String 。参数和返回值不必属于同一种类型,但是Lambda表达式必须是Function 接口的一个实例,Function 接口是只包含一个参数的普通函数接口。

 

3.

遍历数据并检查其中的元素时,可尝试使用Stream 中提供的新方法filter .

List<String> stringArrayList =
        asList("1q234","1q342","1q2334","1q434","q34","324","q3224","22q34","22q34");

System.out.println("含有q的有:" + String.valueOf(stringArrayList.stream()
        .filter(string -> {
            System.out.println(string);
            return string.contains("q");
        })
        .count()) + "个");

4.

flatMap 方法可用Stream 替换值,然后将多个Stream连接成一个Stream

List<Integer> together = Stream.of(asList(1, 2), asList(3, 4))
        .flatMap(Collection::stream)
        .collect(toList());

together.forEach(System.out::println);

5.

maxmin

List<String> stringList = asList("1", "22", "333", "4444", "55555");
String s = stringList.stream()
        .min(Comparator.comparing(string -> string.length()))
        .get();
System.out.println("-------min-----");
System.out.println(s);

List<String> stringList = asList("1", "22", "333", "4444", "55555");
String s = stringList.stream()
        .max(Comparator.comparing(string -> string.length()))
        .get();
System.out.println("-------max-----");
System.out.println(s);

 

 

 

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_25452989/article/details/82968686

智能推荐

SIKI学院:MySQL数据库从零到精通:七:课时 9 : 08-如何利用MySQL Workbench链接数据库_Smart_zy的博客-程序员宅基地

目录一.目的1.想:提高学习效率,所以将老师的内容记录下来二.参考1.SIKI学院三.注意1.课程资源下载1.MySQL下载地址四.操作:成功1.打开MySQL Workbench链接数据库的方法1.1 方法一:1.1 方法二:​一.目的1.想:提高学习效率,所以将老师的内容记录下来二.参考1.SIKI学院​​​​​​登录 - SiKi学院 - 生命不息,学习不止!正在上传…重新上传取消​http://www.sikiedu...

linux ubuntu安装diffbind包 bug解决_橙子榴莲巧克力的博客-程序员宅基地

这个包是目前安装出现bug最多的,记录一下bug解决方法,花了有10个小时=.=之前R装的3.4,出现很多问题,后来就直接安的最新的R4.0.3#先卸载老版本sudo apt remove r-base-coresudo passwd root#进入sudo vim /etc/apt/sources.list#编辑,因为我装的linux ubuntu 18.04所以对应的是bionicdeb https://cloud.r-project.org/bin/linux/ubuntu bioni

rpm包制作_weixin_30367873的博客-程序员宅基地

rm /dev/null mknod /dev/null c 1 3 chmod 666 /dev/nullRHEL7内网编译升级openssh到7.9P1步骤配置内网yum源wget http://10.0.0.8/html/rhel7.repoyum clean allyum makecache安装需要支持的依赖包yum -y install pam-devel lib...

使用tlink链接多个obj时会出现 Bad object file record in ..objxxx.obj near module file offset 0×00000000_新手程序员攀爬之路的博客-程序员宅基地

出现这个问题,需要更换tlink,最方便的方式是直接更换bcc包。如果有出现这种情况的,可以使用下边这个bcc链接:点我提取码:3w1b直接替换删了原来的bc31,用这个压缩文件里面的bc31替代放出报错截图:下面问题解决:...

oracle数据库dmp的迁移_Ctrls8的博客-程序员宅基地

Oracle数据库迁移的步骤1. 登录后台 sqlplus / as sysdba;2.创建路径create directory expdp_dir as 'E:\app\Administrator\expdp_dmp';3.导出当前数据库的dmp文件用户/密码:一般具有dba的权限,这样才能保证导出的权限完整expdp sys/123456 directory=expdp_di...

51nod 3级算法题-1065_Ilooker的博客-程序员宅基地

1065 最小正子段和N个整数组成的序列a[1],a[2],a[3],…,a[n],从中选出一个子序列(a[i],a[i+1],…a[j]),使这个子序列的和>0,并且这个和是所有和>0的子序列中最小的。例如:4,-1,5,-2,-1,2,6,-2。-1,5,-2,-1,序列和为1,是最小的。Input第1行:整数序列的长度N(2 <= N <= 50000)第2 - N+1行:N个整数Ou

随便推点

【WPF学习】第五十二章 动画性能_gman344的博客-程序员宅基地

  通常,为用户界面应用动画只不过是创建并配置正确的动画和故事板对象。但在其他情况下,特别是同时发生多个动画时,可能需要更加关注性能。特定的效果更可能导致这些问题——例如,那些涉及视频、大位图以及多层透明等的效果通常需要占用更多CPU开销。如果不谨慎实现这类效果,运行它们使可能造成明显抖动,或者会从其他同时运行的应用程序抢占CPU时间。  幸运的是,WPF提供了几个可提供帮助的技巧。接...

visual studio code编辑器你不一定知道的技巧——1.窗口篇_web前端100的博客-程序员宅基地

今天我跟大家分享四个visual studio code窗口的操作技巧。一、使用vscode打开当前文件夹,操作步骤:1.在当前文件夹的地址栏输入:cmd 回车,即可打开命令提示符窗口2.在命令提示符窗口中输入:code . 回车,即可打开vscode编辑器(注意:code后面有空格,.表示当前路径)二、创建目录与文件新建文件时输入:目录名/文件名。例如:home/index.html,按回车即可创建home文件夹与子文件index.html三、Ctrl+..

angular6学习(十):指令_七刀的博客-程序员宅基地

基础知识一:ngIf 实现功能:在输入框内输入内容,按按钮后将内容显示到下方ts文件html文件:显示:点击后:

[译]何时使用 Parallel.ForEach,何时使用 PLINQ_weixin_34126557的博客-程序员宅基地

原作者:Pamela Vagata, Parallel Computing Platform Group, Microsoft Corporation原文pdf:http://download.csdn.NET/detail/sqlchen/7509513============================================...

【待考察】Appium使用技巧,助你快速入门移动端自动化!_weixin_30767835的博客-程序员宅基地

Appium使用技巧,助你快速入门移动端自动化!原创:柠檬班superman柠檬班软件测试1月4日关注并置顶【柠檬班】的小哥哥小姐姐“猪”年行大运说说最近研究移动端的自动化移动端的自动化,appium是个不错的选择。优势就不必多讲了,直入主题,方便大家获取自己想要的知识。如下:第一步就是各种配置的键值怎么获取,...

APP测试01-初步认知_流墨馨的博客-程序员宅基地

相比较web端测试,需要考虑到其他的一些因素:1、性能方面,web端可能只需要考虑到时间,而app端还需要考虑到流量和耗电量2、兼容性方面,web端只需要考虑到不同浏览器的兼容性(IE、Chrome、Firefox等),而app端需要考虑不同的品牌、不同分辨率、不同的手机版本以及不同的操作系统3、安装方面,web端基本没有客户端的安装,几乎都是浏览器,App需要安装在客户端,是基于手机设备进行运行的,因此需要考虑到交叉事件测试、操作类型测试、网络测试等常见的交叉事件,比如:在运行耶猫的时候,突然来电

推荐文章

热门文章

相关标签