Java1.8+的Stream流学习总结(第一部分)

感谢:bilibili  up主:学相伴飞哥   倾囊相授!这只是我的学习总结,更多知识可以关注飞哥!

目录

1.Stream流常用创建方法

1-1 Collection下的Stream()方法和paralleStream()方法

1-2 Arrays下的Stream()方法

1-3 Stream中的静态方法:of() , iterate() , generate()

1-4 BufferReader.lines()方法,将每行内容都转换成流

1-5 Pattern.splitAsStream(方法,将字符串分隔成流

2.Stream流的两种操作

2-1 中间操作

2-2 终止操作


1.Stream流常用创建方法

1-1 Collection下的Stream()方法和paralleStream()方法

List<String> list = new ArrayList<>();
Stream<String> stream1 = list.Stream();//获取一个顺序流


Stream<String> stream2 = list.paralleStream();
//获取一个并行流,在并发式编程中,这个的效率比上面个高很多

1-2 Arrays下的Stream()方法

Integer[] nums = new Integer[10];
Stream<Integer> stream3 = Arrays.Stream(nums);

1-3 Stream中的静态方法:of() , iterate() , generate()

//创建一个流
Stream<Integer> stream4 = Stream.of(1,2,3,4,5);


//创建一个迭代的流,输出打印它
//从0开始迭代,每次+2,链式编程用limit限制迭代次数为6
Stream<Integer> stream5 = Stream.iterate(0,( x -> x + 2 ).limit(6));
stream5.forEach(System.out::println);//0 2 4 6 8 10


//返回一个无限连续的无序流,次数为2
Stream<Double> stream6 = Stream.generate(Math::random).limit(2);
stream6.forEach(System.out::println);

1-4 BufferReader.lines()方法,将每行内容都转换成流

BufferedReader reader = new BufferedReader(new FileReader("F:\\test_Stream.txt")) ;
Stream<string> lineStream = reader.lines();
lineStream.forEach(System.out::println);

1-5 Pattern.splitAsStream(方法,将字符串分隔成流

//以逗号作为分隔符,分割的每一部分都是流
Pattern pattern = Pattern. compile(",");
Stream<String> stringStream = pattern.splitAsStream("a,b,c,d");
stringStream.forEach(System.out::println);


 


2.Stream流的两种操作(下面两张图中的具体使用代码就不搬过来了,我自己悄悄看哈哈哈哈哈,其实是太多了我没记住,就不想总结上来了)

2-1 中间操作

2-2 终止操作

 飞哥生动的讲了一段话:(这段话我倒是一字不差记下了哈哈哈哈)

可以形象地理解Stream的操作是对一组粗糙的工艺品原型(即对应的Stream数据源)进行加工成颜色统-一的工艺品(即最终得到的结果),第一步筛选出合适的原型(即对应Stream的filter的方法),第二步将这些筛选出来的原型工艺品上色(对应Stream的map方法),第三步取下这些,上好色的工艺品(即对应Stream的collect(toList())方法)。在取下工艺品之前进行的操作都是中间操作,可以有多个或者0个中间操作,但每个Stream数据源只能有一次终止操作,否则程序会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值