Stream流

Stream流的作用:结合了Lambda表达式,简化集合、数组的操作

Stream流的使用步骤:

①先得到一条Stream流(流水线),并把数据放上去

(图片来自哔站黑马程序员)

②利用Stream流中的API进行各种操作

过滤 转换:中间方法:方法调用完毕后,还可以调用其他方法

统计 打印:终结方法:最后一步,调用完毕之后,不能调用其他方法

1.单列集合代码演示:
package a08mystream;

import java.util.ArrayList;
import java.util.Collections;

public class StreamDemo1 {
    public static void main(String[] args) {
        //1.单列集合获取Stream流
        ArrayList<String> list = new ArrayList<>();
        Collections.addAll(list,"a","b","c","d","e");
       /* //获取到一条流水线,并把集合中的数据放到流水线上
        Stream<String> stream1 = list.stream();
        //使用终结方法打印流水线上的数据
        stream1.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                //s依次表示流水线上的每一个数据
                System.out.println(s);
            }
        });*/
        list.stream().forEach(s-> System.out.println(s));
    }
}

运行结果:

2.双列集合(无法直接获取,需要通过keySet或entrySet中转)代码演示:
package a08mystream;

import java.util.HashMap;

public class StreamDemo2 {
    public static void main(String[] args) {
        //双列集合
        HashMap<String,Integer> hm=new HashMap<>();
        //HashMap是基于哈希表的,所以不能保证存和取的顺序一样
        //2.添加数据
        hm.put("aaa",111);
        hm.put("bbb",222);
        hm.put("ccc",333);
        hm.put("ddd",444);
        //3.第一种获取Stream流(把键放到流水线上)
        hm.keySet().stream().forEach(s-> System.out.println(s));//s依次表示每一个键
        //4.第二种获取Stream流(获取所有键值对对象放到流当中)
        hm.entrySet().stream().forEach(s-> System.out.println(s));//s依次表示每一个键值对

    }
}

运行结果:

 

3.数组代码演示
package a08mystream;

import java.util.Arrays;

public class StreamDemo3 {
    public static void main(String[] args) {
        //数组
        //1.创建数组
        int[] arr={1,2,3,4,5};
        String[] arr2={"a","b","c"};
        //2.获取stream流
        Arrays.stream(arr).forEach(s-> System.out.println(s));
        System.out.println("-------------");
        Arrays.stream(arr2).forEach(s-> System.out.println(s));
    }
}

运行结果:

4.一堆零散数据(必须是同种数据类型)代码演示
package a08mystream;

import java.util.stream.Stream;

public class StreamDemo4 {
    public static void main(String[] args) {
        //一堆零散数据,必须是同种数据类型
        Stream.of(1,2,3,4,5).forEach(s-> System.out.println(s));
        Stream.of("a","b","c","d","e").forEach(s-> System.out.println(s));
    }
}

运行结果:

stream接口中静态方法of的细节:

方法的形参是一个可变参数,可以传递一些零散的数据,也可以传递数组

但是数组必须是引用数据类型的,如果传递基本数据类型,是会把整个数组当做一个元素,放到stream中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值