java:stream流

 1、 stream是什么?有什么作用?结合了什么技术?

答:简化集合、数组操作的API,结合了lambda表达式。

2、说说stream流处理数据的步骤是什么?

先得到集合或者数组的stream流。

然后调用stream流的方法对数据进行处理。

获取处理的结果。

获取stream流

1、List集合获得stream流

COllection<String> list =new ArrayList<>();
stream <String> s= list.stream();

2、Map集合获得Stream流

Map<String,Integer> map=new HashMap<>();
Stream<string>s2= map.keyset().stream();
Stream<string>s3= map.values().stream();
Stream<Map.Entry<String,Integer>>s4=map.entrySet().stream();

3、数组获得Stream流

Stream<String>s5=Stream.of(names);

Stream流常见使用方法(中间流和终结流)

List<String> list=new ArrayList<>();
list.add("小明");
list.add("小红");
list.add("小张");
list.add("小梁");
list.add("小米");
list.stream().filter(s->s.startsWith('张')&&s.length()==2).forEach(System.out::println);

在这个例子中,符合条件的字符串 "小明""小红""小张""小梁" 和 "小米" 都会被打印出来,因为它们都是以 "小" 开头且长度为 2 的字符串。

scores.stream().sorted().forEach(System.out::println);//默认升序
scores.stream().sorted((s1,s2)->Double.compare(s2,s1)).forEach(System.out::println);
//默认降序
scoscores.stream().sorted((s1,s2)->Double.compare(s2,s1)).forEach(System.out::println);
//默认降序res.stream().sorted((s1,s2)>Double.compare(s2,s1)).limit(2).forEach(System.out::println);
//只要前两名
scores.stream().sorted((s1,s2)>Double.compare(s2,s1)).skip(2).forEach(System.out::println);
//跳过前两名
scores.stream().sorted((s1,s2)>Double.compare(s2,s1)).distinct.skip(2).forEach(System.out::println);
//跳过前两名且去重
scores.stream().map(s -> "加10分后:"+(s+10)).forEach(System.out::println);//对数据进行加工,并返回对应的新流。

终结方法

调用完stream,不会返回stream流。

将流收集到数组和集合当中去

Stream<String>s1=list.stream().filter(s->s.startsWith('张'));
List<String>list1=s1.collect( Collectors.tolist());
//收集到list集合
object [] array=s3.toArray();//收集到数组集合
Map<String,Double>map=teachers.stream().collect(collectors.tomap(teacher::getName,Teacher::getSalary));

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值