Stream流的中间操作

前提

public static List<Emploeer> getEmploer(){List<Emploeer> list = new ArrayList<>();list.add(new Emploeer(1,"张三",18,5000));list.add(new Emploeer(2,"李四",20,5000));list.add(new Emploeer(3,"王五",31,5000));list.add(new Emploeer(4,"赵六",20,5000));list.add(new Emploeer(5,"田七",19,5000));return list;}

过滤

List<Emploeer> list = getEmploer();list.stream().filter(s->s.getAge()>18).forEach(System.out::println);

此代码过滤了年龄大于18的员工

去重

list.stream().distinct().forEach(System.out::println);

将相同的数据进行去重

切片

list.stream().skip(1).forEach(System.out::println);

将指定穿过流的第几条数据过滤,由参数决定。

映射

list.stream().map(s->s.getAge()).forEach(System.out::println);

map:参数为接收函数实现,应用给当前Stream操作的每一个元素,每一个元素作用参数函数之后会返回一个新结果(元素)最终所有元素作为结果返回。

map特点:每一个元素作用参数函数映射出的新结果可以为数据也可以为流

eg

  List<String> list = List.of("aaa","bbb","ccc");Stream<Stream<Character>> stream = list.stream().map(s->getCharacter(s));//{{a,a,a},{b,b,b},{}}

另一个映射flatMap

Stream<Character> stream1 = list.stream().flatMap(s -> getCharacter(s));//{a,a,a,b,b,b,c,c,c}

flatMap与map的区别是flatmap返回的一个整体的大流,而map返回的可以是一个大流里面包含着一个小流也可是一个大流里面直接包含数据。

排序

list.stream().sorted((a,b)->a.getAge()-b.getAge()).forEach(System.out::println);

对流进行升序排序,里面由内部比较器可以自己定义,也可以直接用内部比较器。

Java中Stream流的中间操作步骤相关推荐

  1. Java8中Stream流对集合操作

    java8中Stream流引入函数式编程思想,主要配合各种接口.lambda表达式.方法引用等方式,为集合的遍历.过滤.映射等提供非常"优雅"的操作方式. Student.java ...

  2. [Java基础]Stream流的收集操作

    代码如下: package CollectPack;import java.util.*; import java.util.stream.Collectors; import java.util.s ...

  3. Java 8 Stream流的常见操作

    Stream流的使用 在 Java 8 中, 集合接口有两个方法来生成流: stream() − 为集合创建串行流.parallelStream() − 为集合创建并行流. 串行流 如果是数组的话,可 ...

  4. java中Stream流

    一 概述 数据渠道.管道,用于操作数据源(集合.数组等)所生成的元素序列. 集合讲的是数据,流讲的是计算 即一组用来处理数组,集合的API. 二 Stream特点 1 Stream 不是数据结构,没有 ...

  5. java中Stream流的使用

    文章目录 前言 一.stream.collect方法 二.转换成其他容器 1.转化成新的List 2.转化成Map 3.转换成set集合 4.转换成特定的set集合 二.其他功能 1.过滤 2.映射 ...

  6. java io流操作_十个Demo进行讲解Java中IO流的常用操作~

    好久不见的IO流 对IO流的学习,我记得还是初学Java基础的时候,后来找工作过程中经常看到有些招聘信息中写到熟悉IO流,现在想想IO流,真的是一脸懵逼,不说这么多废话了,IO流这次好好整理一下. 说 ...

  7. Java中的Stream流以及收集操作

    一.Stream流的生成方式 1.Stream流的使用: <1>:生成流:通过数据源(集合.数组等)生成流 <2>:中间操作:一个流后面可以跟随零个或多个中间操作,其目的主要是 ...

  8. Java 8 - Stream流骚操作解读2_归约操作

    文章目录 Pre 什么是归约操作 元素求和 reduce reduce如何运行的 最大值和最小值 Pre Java 8 - Stream流骚操作解读见到过的终端操作都是返回一个 boolean ( a ...

  9. 深入理解 Java中的 流 (Stream)

    个人小站,正在持续整理中,欢迎访问:http://shitouer.cn 小站博文地址:深入理解 Java中的 流(Stream)机制 最近在看<Hadoop:The Definitive Gu ...

最新文章

  1. android随手记
  2. 【Android 逆向】Android 系统中文件的用户和分组 ( 文件所有者与分组 | /sdcard/ 的文件分组 | /data/ 目录分析 | 用户类型 )
  3. python 字符串替换_Python,字符串。替换()和\n
  4. java 微商城开发_Java网上商城系统可以开微信商城吗
  5. [Android] 底部菜单布局+PopupWindows实现弹出菜单功能(初级篇)
  6. 3个点让你彻底明白,为什么要使用MQ消息中间件?
  7. css的三种引入方式 1211
  8. 生成sql条件的类(转)
  9. 用于Ubuntu 16.04和18.04的TensorFlow,Keras,Caffe,Caffe,CUDA,cuDNN和NVIDIA驱动程序的单行安装
  10. spring揭秘 读书笔记 六 bean的一生
  11. Sqlite加密问题
  12. centerOS 7.6FTP安装与配置
  13. r型聚类分析怎么做_聚类分析原理及R语言实现过程
  14. curl DNS解析失败crash问题
  15. Day4.数据可视化拓展图形的绘制
  16. 记一次配置深信服设备的过程
  17. 移动应用程序设计基础——期末考核——登录界面与简单日记本的综合实践
  18. [计算几何] (二维)圆与直线的交点
  19. 招聘需求 视觉工程师
  20. MySQLamp;amp;JDBC回顾——MySQL

热门文章

  1. PHP怎么合并元素不等的数组_PHP合并数组的2种方法小结
  2. Microsoft Remote Desktop远程控制
  3. oracle按相同年份_通过oracle建立Bsv的链上二元期权合约
  4. 去掉视频中人物对话,去除人声,保留背景音乐的方法
  5. 乐视做亲子智能硬件,误入歧途?
  6. 与师生谈人工智能1:智乎哉?
  7. 定义一个学生类。 有下面的类属性:①姓名②年龄③成绩(语文,数学,英语)[每课成绩的类型为整数] 类方法: ①获取学生的姓名:get_name() 返回类型:str ②获取学生的年龄:ge
  8. C语言中编译奖金发放,【C语言】企业奖金发放问题
  9. 29篇论文简介,含人脸安全、图像分割、目标检测等多个研究方向
  10. linux通过信号回调函数,信号机制的管理结构 - Linux内核中的信号机制_Linux编程_Linux公社-Linux系统门户网站...