Stearm流

1.体验Stream流

需求:按照下面的要求完成集合的创建和遍历

  • 创建一个集合,存储多个字符串元素

  • 把集合中所有以"张"开头的元素存储到一个新的集合

  • 把"张"开头的集合中的长度为3的元素存储到一个新的集合

  • 遍历上一步得到的集合

使用Stream流的方式完成过滤操作

  • list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3).forEach(System.out::println);

  • 直接阅读代码的字面意思即可完美展示无关逻辑方式的语义:获取流、过滤姓张、过滤长度为3、逐一打印

  • Stream流把真正的函数式编程风格引入到Java中

2.Stream流的思想和生成方式

Stream流的使用

  • 生成流 通过数据源(集合,数组等)生成流 list.stream()

  • 中间操作 一个流后面可以跟随零个或多个中间操作,其目的主要是打开流,做出某种程度的数据过滤/映射,然后返回一个新的流, 交给下一个操作使用 filter()

  • 终结操作 一个流只能有一个终结操作,当这个操作执行后,流就被使用“光”了,无法再被操作。所以这必定是流的最后一个操作 forEach

Stream流的常见生成方式

  • Collection体系的集合可以使用默认方法stream()生成流 default Stream<E> stream()

  • Map体系的集合间接的生成流

  • 数组可以通过Stream接口的静态方法of(T... values)生成流

 package com.itheima_02;
 ​
 import java.util.*;
 import java.util.stream.Stream;
 ​
 /*
     Stream流的常见生成方式
         1:Collection体系的集合可以使用默认方法stream()生成流
             default Stream<E> stream()
         2:Map体系的集合间接的生成流
         3:数组可以通过Stream接口的静态方法of(T... values)生成流
  */
 public class StreamDemo {
     public static void main(String[] args) {
         //Collection体系的集合可以使用默认方法stream()生成流
         List<String> list = new ArrayList<String>();
         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.k
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值