Stream流

目的:用于简化集合和数组操作的API.结合了Lambda表达式。

Stream流的思想和使用步骤:

  1. 先得到集合或者或者数组的stream流(就是一根传送带)

  1. 把元素放上去。

  1. 然后就用这个Stream流简化的API来方便的操作元素。

获取Stream流

  1. 集合获取Stream流的方式

可以使用Collection接口中的默认方法stream()生成流

default Stream<E>stream()

获取当前集合对象的Stream流

  1. 数组获取Stream流的方式

public static <T> Stream<T>stream(T[]array)
//获取当前数组的Stream流
public static <T>Stream<T>of(T...values)
//获取当前数组/可变数据的Stream流
  1. Collection集合获取流

Collection <String>list=new Arraylist<>();
Stream <String> s=list.stream;
  1. Map集合数据流

Map<String,Integer> maps=new HashMap<>();

//键流

Stream <String> keyStream=maps.keySet().stream();

//值流

Stream <Integer>valueStream=map.values().stream();

//键值对流

Stream<Map.Entry<String,Integer>>keyAndValueStream=map.entrySet().Stream();

3.数据获取流

String[] names={"赵敏","小昭","灭绝","周芷若"};
String<String> nameStream=Arrays.stream(names);
//或者Sream<String> nameStream=Stream.of(names);

Stream流的常用API(中间操作方法)

Stream<T> filter(Predicate<? super T> predicate)
//用于对流中的数据进行过滤
Stream<T> limit(long maxSize)//获取前几个元素
Stream<T> skip(long n)//跳过前几个元素
Stream<T> distinct()//去除流中重复的元素
static<T>Stream<T> concat (Stream a,Stream b)
//合并a和b两个流为一个流

注意:

  1. 中间方法也成为非终结方法,调用完成后返回新的Stream流可以继续使用,支持链式编程

  1. 在stream流中无法直接修改集合,数组中的数据

Stream流的常见终结操作方法

void forEach(Consumer action)
//对此流的每个元素执行遍历操作
long count()
//返回此流中的元素数

注意:

终结操作方法,调用完成后,流就无法使用了,原因时不会返回Stream了。

Sream流的收集操作

含义:就是把stream流操作后的结果数据转回到集合或者数组中去

Stream流的收集方法

R collect(Collector collector)//开始收集Stream流,指定收集器Collectors工具类提供了具体的收集方法
public static <T>Collector toList()//把元素收集到List集合中
public static <T>Collector toSet()//把元素收集到Set集合中
public static Collector toMap(Function keyMapper,Function valueMapper)//把元素收集到Map集合中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值