获取流对象

获取单列集合,双列集合,数组的流对象

单列集合获取流对象:

1、java.util.Collection接口中加入了default方法stream()获取流对象,因此其所有实现类均可通过此方式获取流。

  1. public class StreamTest01 {
  2. List<String> list = new ArrayList<>();
  3. Stream<String> stream1 = list.stream();
  4. Set<String> set = new HashSet<>();
  5. Stream<String> stream2 = set.stream();
  6. }

双列集合获取流对象

2、java.util.Map接口想要获取流,先通过keySet()、values()或entrySet()方法获取键、值或键值对的单列集合,再通过stream()获取流对象。

  1. public class StreamTest01 {
  2. Map<String, String> map = new HashMap<>();
  3. Stream<String> keyStream = map.keySet().stream();
  4. Stream<String> valueStream = map.values().stream();
  5. Stream<Map.Entry<String,String>>entryStream = map.entrySet().stream();
  6. }

数组获取流对象

数组获取流,使用Stream接口中的的静态方法of(T...values)获取流

  1. public class StreamTest01 {
  2. String[] array = {"东邪", "西毒", "南帝", "北丐", "中神通"};
  3. Stream<String> stream = Stream.of(array);
  4. }

filter过滤,结果收集(数组)

  1. /**
  2. * 需求
  3. * 过滤:filter、结果收集(数组)
  4. * 问题:
  5. * 有如下7个元素黄药师,冯蘅,郭靖,黄蓉,郭芙,郭襄,郭破虏,使用Stream将以郭字开头的元素存入新数组
  6. */
  7. public class StremFilterTest_Array {
  8. public static void main(String[] args) {
  9. Stream<String> stream = Stream.of("黄药师", "冯蘅", "郭靖", "黄蓉", "郭芙", "郭襄", "郭破虏");
  10. //使用Stream将以郭字开头的元素存入新数组
  11. String[] gous = stream.filter(t -> t.startsWith("郭")).toArray(String[]::new);
  12. System.out.println(gous[0]);
  13. }
  14. }

取用前几个:limit、跳过前几个:skip、 forEach: 循环消费

  1. /**
  2. * 需求:
  3. * 已知ArrayList集合中有如下元素{陈玄风、梅超风、陆乘风、曲灵风、武眠风、冯默风、罗玉风},使用Stream
  4. * 1、取出前2个元素并在控制台打印输出。
  5. * 2、取出后2个元素并在控制台打印输出
  6. */
  7. public class Limit_Skip {
  8. public static void main(String[] args) {
  9. ArrayList<String> list = new ArrayList<>();
  10. list.add("陈玄风");
  11. list.add("梅超风");
  12. list.add("陆乘风");
  13. list.add("曲灵风");
  14. list.add("武眠风");
  15. list.add("冯默风");
  16. list.add("罗玉风");
  17. list.stream().limit(2).forEach(System.out::println);
  18. list.stream().skip(list.size() - 2).forEach(System.out::println);
  19. }
  20. }

映射:map、 逐一消费:forEach

  1. /**
  2. * 需求:
  3. * 有如下整数1,-2,-3,4,-5
  4. * 使用Stream取元素绝对值并打印
  5. */
  6. public class Map_ForEach {
  7. public static void main(String[] args) {
  8. Stream<Integer> stream = Stream.of(1, -2, -3, 4,-5);
  9. stream.map(Math::abs).forEach(System.out::println);
  10. }
  11. }

组合:concat、 结果收集(list)

  1. /**
  2. * 需求:
  3. * 已知数组arr1中有如下元素{郭靖,杨康},arr2中有如下元素{黄蓉,穆念慈},使用Stream将二者合并到List集合
  4. */
  5. public class Concat_List {
  6. public static void main(String[] args) {
  7. Stream<String> streamA = Stream.of("郭靖", "杨康");
  8. Stream<String> streamB = Stream.of("黄蓉", "穆念慈");
  9. List<String> strList = Stream.concat(streamA, streamB).collect(Collectors.toList());
  10. }
  11. }

获取并发流

parallelSteam: 是一个并行流,多管道流

Stram:是一个单管道的流

二者区别:parallelSteam的处理效率比Stram的高

  1. public class ParallelStream {
  2. public static void main(String[] args) {
  3. Collection<String> coll = new ArrayList<>();
  4. Stream<String> parallelStream1 = coll.parallelStream();
  5. Stream<Integer> parallelStream2 = Stream.of(100, 200, 300, 400).parallel();
  6. }
  7. }

获取单列集合,双列集合,数组的Stream流对象以及简单操作的更多相关文章

  1. Map集合(双列集合)

    Map集合(双列集合)Map集合是键值对集合. 它的元素是由两个值组成的,元素的格式是:key=value. Map集合形式:{key1=value1 , key2=value2 , key3=val ...

  2. Map集合——双列集合

    双列集合<k, v> Map: Map 和 HashMap是无序的: LinkedHashMap是有序的: HashMap & LinkedHashMap: put方法: 其中,可 ...

  3. java oop 单列 双列 集合, 迭代器 的使用和说明

    一.集合(Collection) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组 而数组的长度固定, ...

  4. C#之单列双列集合绑定数据

    ---恢复内容开始--- 1.单列集合绑定方式 davList.DataSource=new BindingList<类型名>(集合名); 2.双列集合绑定方式 BindingSource ...

  5. Java之Map接口(双列集合)

    Map集合概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对象关系的对 ...

  6. Java学习:集合双列Map

    数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过 ...

  7. Java中的集合(七)双列集合顶层接口------Map接口架构

    Java中的集合(七)双列集合顶层接口------Map接口 一.Map接口的简介 通过List接口,我们知道List接口下的集合是单列集合,数据存储是单列的结构.Map接口下是一个键值对(key-v ...

  8. (10)集合之双列集合Map,HashMap,TreeMap

    Map中的元素是两个对象,一个对象作为键,一个对象作为值.键不可以重复,但是值可以重复. 看顶层共性方法找子类特有对象. Map与Collection在集合框架中属并列存在 Map存储的是键值对 Ma ...

  9. 双列集合Map的嵌套遍历

    双列集合Map的嵌套使用,例如HashMap中还有一个HashMap,这样的集合遍历起来稍微有点儿复杂.例如一个集合:HashMap<Integer,HashMap<String,Inte ...

随机推荐

  1. jmeter-中文乱码问题

    1.被测系统中问乱码 解决办法:接口请求时添加编码方式UTF-8

  2. OpenvSwitch系列之ovs-ofctl命令使用

    Open vSwitch系列之一 Open vSwitch诞生 Open vSwitch系列之二 安装指定版本ovs Open vSwitch系列之三 ovs-vsctl 命令使用 OpenvSwit ...

  3. 小白学 Python(13):基础数据结构(字典)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. django-URL别名的作用(六)

    接include函数那一节. 作用:为url地址取一个名称,这样在html中引用的时候,无论后台url怎么变,都可以访问到对应的界面,可以减少更改的次数. 基本目录: book\urls.py fro ...

  5. Windows 10 中CPU虚拟化已开启,但是docker无法运行

    在管理员模式下的PowerShell中执行: bcdedit /set hypervisorlaunchtype Auto 然后重启电脑即可

  6. Golang 实现华为云 DMS 签名

    构造请求 首先构造请求,也就是要对哪个具体接口进行访问,需要提供什么必要的参数.在构造请求(点击查看中可以看到,对 DMS 服务来说必要的请求构成包括以下部分 请求URI,例如 https://dms ...

  7. 【Spring Boot】java.lang.NoSuchMethodError: org.springframework.web.util.UrlPathHelper.getLookupPathForRequest(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/lang/String;

    Digest:今天Spring Boot 应用启动成功,访问接口出现如下错误,不知到导致问题关键所在,记录一下这个问题. 浏览器报500错误 项目代码如下 Controller.java packag ...

  8. Python 图形验证码库、二维码库的使用

    1. 图形验证码库 captcha # 引入图形库 from captcha.image import ImageCaptcha # 获取图像对象 image = ImageCaptcha(width ...

  9. 浅谈Spring AOP 面向切面编程 最通俗易懂的画图理解AOP、AOP通知执行顺序~

    简介 我们都知道,Spring 框架作为后端主流框架之一,最有特点的三部分就是IOC控制反转.依赖注入.以及AOP切面.当然AOP作为一个Spring 的重要组成模块,当然IOC是不依赖于Spring ...

  10. 爬虫之selenium爬取京东商品信息

    import json import time from selenium import webdriver """ 发送请求 1.1生成driver对象 2.1窗口最大 ...