二、使用Stream流的方式完成过滤操作
package stream01;import java.util.ArrayList;
import java.util.stream.Stream;/*** 使用Stream流的方式完成过滤操作* 1:list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);* 2:直接阅读代码的字面意思即可完美展示无关逻辑方式的语义:生成流、过滤姓张、过滤长度为3、逐一打印* 3:Stream流把真正的函数式编程风格引入到Java中*/public class stream01 {public static void main(String[] args) {ArrayList<String> list = new ArrayList<String>();list.add("林青霞");list.add("张三");list.add("李四");list.add("张明明");list.add("孙悟空");list.add("张无忌");//把集合中所有以张开头的元素存储到一个新的集合中ArrayList<String> zhangList = new ArrayList<String>();for(String s : list){if(s.startsWith("张")){zhangList.add(s);}}//把张开头的集合中长度为3的元素存储到一个新的集合ArrayList<String> threeList = new ArrayList<String>();for(String s : zhangList){if(s.length() == 3){threeList.add(s);}}//遍历上面得到的集合for(String s : threeList){System.out.println(s);}System.out.println("============");//Stream 流来改进list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(s -> System.out.println(s));//Stream+方法应用来改进list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);//取前3个数据并在控制台输出list.stream().limit(3).forEach(System.out::println);//跳过3个元素,把剩下的元素在控制台输出list.stream().skip(3).forEach(System.out::println);//跳过2个元素,并把剩下的元素中前2个在控制台输出list.stream().skip(2).limit(2).forEach(System.out::println);Stream<String> s1 = list.stream().limit(4);Stream<String> s2 = list.stream().skip(2);//合并上面的2个流 并把合并后的结果在控制台输出Stream.concat(s1,s2).forEach(System.out::println);//合并上面的2个流 并把合并后的结果在控制台输出 去掉重复元素Stream.concat(s1,s2).distinct().forEach(System.out::println);//按照字母顺序把数据在控制台输出list.stream().sorted().forEach(System.out::println);//按照字符串长度把数据在控制台输出list.stream().sorted((s11,s22)->s11.length()-s22.length()).forEach(System.out::println);//按照字符串长度把数据在控制台输出,长度一样的按字幕顺序排list.stream().sorted((s3,s4)->{int num = s3.length()-s4.length();int num2 = num==0?s3.compareTo(s4):num;return num2;}).forEach(System.out::println);}
}
- Collection 体系的集合可以使用默认的stream()生成流
- Map体系的集合间接生成流
- 数组可以通过Stream接口的静态方法of(T…values)生成流
package stream01;import java.util.*;
import java.util.stream.Stream;/*** Collection 体系的集合可以使用默认的stream()生成流* Map体系的集合间接生成流* 数组可以通过Stream接口的静态方法of(T...values)生成流*/
public class stream02 {public static void main(String[] args) {/** Collection 体系的集合可以使用默认的stream()生成流*/List<String> list = new ArrayList<>();Stream<String> listStream = list.stream();Set<String> set = new HashSet<String>();Stream<String> setStream = set.stream();/** Map体系的集合间接生成流*/Map<String,Integer> map = new HashMap<String, Integer>();Stream<String> keyStream = map.keySet().stream();Stream<Integer> valueStream = map.values().stream();Stream<Map.Entry<String,Integer>> entryStream = map.entrySet().stream();/** 数组可以通过Stream接口的静态方法of(T...values)生成流*/String[] strArray = {"hello","world","java"};Stream<String> strArrayStream = Stream.of(strArray);Stream<String> strArrayStream2 = Stream.of("hello","world","java");Stream<Integer> integerStream = Stream.of(10,20,30);}
}
二、使用Stream流的方式完成过滤操作相关推荐
- 使用Stream流的方式,遍历集合,对集合中的数据进行过滤
Stream的更优写法 下面来看一下借助Java 8的Stream API,什么才叫优雅: package com.learn.demo01.Stream;import java.util.Array ...
- Java复习第11天---11.2---Java8新特性---Stream流获取方式和常用方法1
Java复习第11天---11.2---Java8新特性---Stream流获取方式和常用方法1 目录 文章目录 1.Stream流的2中获取方式 1.1.集合的stream方法 1.2.Stream ...
- JAVA学习-Stream流的生成、中间操作、终结、收集操作
Stream流的使用-用于数据集的过滤.映射 1.生成流的操作:通过数据源.集合生成流list.stream() 2.中间操作:一个流可以跟随零个或多个中间操作,其目的主要是打开流,做出某种程度的数据 ...
- java 1.8stream_java jdk1.8 使用stream流进行list 分组归类操作
我就废话不多说了,大家还是直接看代码吧~ import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util. ...
- 跟我学 Java 8 新特性之 Stream 流(三)缩减操作
转载自 跟我学 Java 8 新特性之 Stream 流(三)缩减操作 和前面两篇文章一起服用,效果会更佳.通过对流API的基础体验Demo和关键知识点的讲解,相信大家对流API都有一定的认识了, ...
- Java中收集Stream流的方式
收集Stream流 Stream流的收集操作: 收集Stream流的含义:就是把Stream流操作后的结果数据转回到集合或者数组中去. Stream流:方便操作集合/数组的手段. 集合/数组:才是开发 ...
- 两种获取Stream流的方式
备注:"Stream流"其实是一个集合元素的函数模型,它并不是集合,也不是数据结构,其本身并不存储任何 元素(或其地址值). Stream(流)是一个来自数据源的元素队列 元素是特 ...
- jdk8新特性(二)Stream流式操作
1.流处理过程 2.Stream流式分类 Stream,IntStream,LongStream,DoubleStream 3.操作符 Stream 的一系列操作必须要使用终止操作,否者整个数据流是不 ...
- Stream流的方式遍历map,筛选数据
文章目录 背景 解决方法 代码实战 产品类: 需要筛选的map集合: 结果分析: 背景 有一产品类,包含id,产品编号,产品金额.在代码中采用map方式去存储该产品,map的key是从数据库中查询出来 ...
最新文章
- 2022-2028年中国四氟化碳产业研究及前瞻分析报告
- 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档
- 滴滴为啥值3600亿?看它的数据中台就知道了
- java手机号判断运营商_用Java对手机号所属运营商进行判断
- 【Java】五种常见排序之-----------冒泡排序
- 51nod1584加权约数和
- ajax传值controller怎么写,关于ajax请求Controller传值问题详细记录
- KVM之五:KVM日常管理常用命令
- 论文笔记_S2D.55_2019_SLAM综述_Huang B. A Survey of Simultaneous Localization and Mapping
- Matlab简单教程:条件分支
- 爬取某家网二手房数据(详细教程)
- java中如何配置前端项目,将后端或前端项目部署到云服务器上
- centos 安装SDCC编译器
- 第12届蓝桥杯国赛真题剖析-2021年5月29日Scratch编程初中级组
- 设计模式——行为型模式_观察者模式/发布-订阅模式
- 洛谷 P2895 [USACO08FEB]Meteor Shower S C++ BFS 广搜
- 【初等数论】【转载】夜深人静写算法(五) - 初等数论
- SQL Server 数据库基本操作入门篇【1】
- Mathtype has detected an error inAutoExcelCls.Main:文件未找到:MathPage.WLL.Please save your document and
- C语言 :学习动态内存分配