Java8新特性 - Stream - 02 - Stream对象的两种获取方式

18 篇文章 0 订阅

1.Stream对象的两种获取方式

 1.Collection接口的静态方法stream() : 所有的Collection的实现类都可以获取到流
   【补充】Map如何获取Stream流,可以通过 key 或者 value 的集合 来获取Stream


 2.Stream的静态方法 of() : 可以获取数组的操作流

2.方式一 : Collection.stream()

案例代码中 主要体现了 List、Set 的操作

package com.northcastle.I_stream;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.stream.Stream;

public class StreamTest01GetStream {
    public static void main(String[] args) {
        getStream01();
    }

    // 1.获取 stream 的第一种方式 : Collection.stream()
    public static void getStream01(){
        //1.List
        ArrayList<String> list = new ArrayList<>();
        list.add("aa");
        list.add("bb");
        Stream<String> streamList = list.stream(); // 通过.stream() 方法获取流

        streamList.forEach(System.out::println); // 3.方法引用的方式进行遍历打印
        System.out.println("==============================");

        //2.Set
        HashSet<String> set = new HashSet<>();
        set.add("aa");
        set.add("cc");
        Stream<String> streamSet = set.stream(); // 通过.stream() 方法获取流
        streamSet.forEach(System.out::println); // 方法引用的方式进行遍历打印
        System.out.println("==============================");

    }
}

3.方式二 : Stream.of()

本方法主要是针对 数组获取流的操作

package com.northcastle.I_stream;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.stream.Stream;

public class StreamTest01GetStream {
    public static void main(String[] args) {
        getStream02();
    }
    
    //2.获取Stream的第二种方式 : Stream.of() 静态方法
    public static void getStream02(){
        String[] strs = {"aa","bb","cc"};
        Stream<String> stream = Stream.of(strs); // 直接获取到了Stream的对象
        stream.forEach(System.out::println);
    }

}

4.补充 : Map如何获取Stream对象

思路 : Map中获取 key的set集合、value的集合、entrySet的集合,然后再使用流即可
其实就是使用的Collection.stream()方法

package com.northcastle.I_stream;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.stream.Stream;

public class StreamTest01GetStream {
    public static void main(String[] args) {
        getStream0101();
    }

    //【Map获取Stream的方式】
    public static void getStream0101(){
        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put("aa",100);
        hashMap.put("bb",200);
        hashMap.put("cc",300);
        //1.根据key集合获取
        Stream<String> streamKey = hashMap.keySet().stream();
        streamKey.forEach(System.out::println);
        System.out.println("==============================");

        //2.根据value集合获取
        Stream<Object> streamValues = hashMap.values().stream();
        streamValues.forEach(System.out::println);
        System.out.println("==============================");

        //3.根据 entry 集合获取
        Stream<Map.Entry<String, Object>> streamEntry = hashMap.entrySet().stream();
        streamEntry.forEach(System.out::println);
        System.out.println("==============================");

    }
}

5.完成

Congratulations!
You are one step closer to success!

总结

写到这里也结束了,在文章最后放上一个小小的福利,以下为小编自己在学习过程中整理出的一个关于 java开发 的学习思路及方向。从事互联网开发,最主要的是要学好技术,而学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯,更加需要准确的学习方向达到有效的学习效果。

由于内容较多就只放上一个大概的大纲,需要更及详细的学习思维导图的 点击我的Gitee获取
还有 高级java全套视频教程 java进阶架构师 视频+资料+代码+面试题!

全方面的java进阶实践技术资料,并且还有技术大牛一起讨论交流解决问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值