Hello friend, I'm R|

Ritchie里其

园龄:2年6个月粉丝:4关注:7

Java8新特性-Stream

一、Stream(流)

1.1 简介

1.是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。

2.集合讲的是数据,流讲的是计算。

3.延迟方法:调用Stream方法之后 返回的还是Stream对象 可以继续调用其方法(多次)

4.终结方法: 调用Stream方法之后 返回的不是Stream对象 不能继续使用其方法(一次)

注:Stream自己不会存储元素,不会改变源对象,是延迟执行的,会等到需要结果的时候才执行。

1.2 获取Stream流

方法名称 方法描述
static Stream of(T... values) 将元素转换为Stream
default Stream stream() 将集合转换为Stream
package com.xxx;
import java.util.*;
import java.util.stream.Stream;
public class Test01 {
public static void main(String[] args) {
//将元素转换成Stream
Stream stream = Stream.of(1, "a", 3.14, true, "b");
List<String> list = new ArrayList<>();
list.add("ha");
list.add("wu");
list.add("英");
list.add("gua");
//将集合转Stream
Stream<String> stream1 = list.stream();
HashMap<String, String> ssh = new HashMap<>();
ssh.put("名1","值1");
ssh.put("名2","值2");
ssh.put("名3","值3");
//获取键,转成Stream
Set<String> set = ssh.keySet();
Stream<String> stream2 = set.stream();
//获取值,也转成Stream
Collection<String> values = ssh.values();
System.out.println(values.stream());
}
}

1.3 常用方法

方法名称 方法描述 是否是延迟方法
Stream fifilter(Predicate<? super T> predicate) 用于数据进行过滤
void forEach(Consumer<? super T> action) 对数据进行遍历 不是
long count() 返回此流中元素的计数 不是
Stream limit(long maxSize) 返回一个包含该流的元素流,截断长度不超过 maxSize
Stream skip(long n) 跳过指定元素
static Stream of(T... values) 将元素转换为Stream
Stream map(Function<? super T,? extends R> mapper) 用于进行转换
static Stream concat(Stream<? extends T> a, Stream<? extends T> b) 用于合并两个Stream流资源
package com.xxx;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
public class Test03 {
public static void main(String[] args) {
String[] arrays01 = {"宫本武藏", "宋公明", "苏有朋", "石头人", "时传祥", "李耳", "庄子", "洪七公"};
String[] arrays02 = {"帕瓦罗蒂", "宋公明", "赵薇薇", "张自忠", "孛儿只斤铁木真", "张天爱", "张翠花"};
List<Person> list = new ArrayList<>();
Stream.concat(Stream.of(arrays01).filter(n->n.length() ==3).limit(3),
Stream.of(arrays02).filter(n->n.substring(0,1).equals("张")).skip(2))
.map(Person::new).forEach(list::add);
System.out.println(list);
}
}

本文作者:Ritchie里其

本文链接:https://www.cnblogs.com/wang-zeyu/p/16830052.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ritchie里其  阅读(36)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
✨欢迎你~🍻
✨欢迎你~🍻
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 遥か Aimer
遥か - Aimer
00:00 / 00:00
An audio error has occurred.

作词 : aimerrhythm/田中ユウスケ

作曲 : 田中ユウスケ

编曲 : 玉井健二/百田留衣

海岸線の雨に ちらばった君の影

思い出が交差する 海辺の街

君はあの日のまま いまも夢を見てた

君はあの日のまま いまも夢を見てた

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

膝までの浅瀬で 見つけた星

君まで届くなんてさ ありえないような

浅い眠りの中で 深い夢から覚めて

浅い眠りの中で 深い夢から覚めて

裸足のまま駆けてく まばゆい星

君はあの日のまま どんな夢を見てた?

君はあの日のまま どんな夢を見てた?

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

いつまでもこうして 笑っててほしい

夜空に舞い上がる 幾千の花びら

でたらめな誓いで 生きてく日々

君から届くなんてさ ありえないような