Java8中streamAPI的使用

一. streamAPI的简介

流(stream)是数据渠道, 用于操作数据源(集合,数组等)所生产的元素序列.

集合存储数据
流(stream)操作数据(数据计算)
注意:

  1. 流(stream)本身不会存储数据
  2. 流(stream)不会改变源对象, 但会返回一个新的流(stream)
  3. 流(stream)的操作是延迟的, 这意味着这些计算是需要结果的时候才会执行

二. streamAPI的使用

流程图:

  1. 创建流(stream)
    一个数据源(如, 集合, 数组), 获取一个stream
// 方法1: 通过collection系列集合提供的stream()或者parallelStream()创建流(stream)
List<Integer> list = new ArrayList<>();
Stream<Integer> stream = list.stream();

// 方法2: 通过Arrays中的静态方法stream()创建流
String[] arr = new String[]{"abc", "bbb", "ccc", "ddd"};
Stream<String> stream = Arrays.stream(arr);

// 方法3: 通过Stream中的静态方法of()创建流
Stream<String> stream = Stream.of("abc", "abc", "bbb", "ccc", "ddd");

// 方法4: 创建无限流
// 迭代
Stream<Integer> stream = Stream.iterate(0, (x) -> x + 1);
// 生成
Stream<Double> stream = Stream.generate(Math::random);
  1. 中间操作
    一个中间链操作, 对数据源的数据进行操作
  1. 筛选与切片
  2. 映射
  3. 排序
  1. 终止操作
    一个终端操作, 执行中间链操作, 并产生结果
  1. 查找与匹配
  2. 归约
  3. 收集

三. stream的练习

  1. 随机生成10个100以内随机整数放进集合list中
List<Integer> list = Stream.generate(() -> (int) (Math.random() * 100)).limit(10).collect(Collectors.toList());
// 打印
list.forEach(System.out::println);
  1. 求出需求1的集合list中10个整数的平方和
int num = list.stream().map((i) -> i * i).reduce(Integer::sum).get();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值