java学习(Stream流)

Stream流

获取Steam流:

  • 所有Collection集合都可以通过stream默认方法获取流
  • Stream接口的静态方法of可以获取数组相对应的流。
 //List集合转换为流
        List<String> list=new ArrayList<>();
        Stream<String> stream1= list.stream();
        //Set集合转换为流
        Set<String> set=new HashSet<>();
        Stream<String> stream2 = set.stream();
        //Map集合转换为流
        Map<String,String> map=new HashMap<>();
        //获取键值集合,转换为流
        Set<String> set1 = map.keySet();
        Stream<String> stream3 = set1.stream();
         //获取值的集合转换为流   
        Collection<String> values = map.values();
        Stream<String> stream4 = values.stream();
        //获取键值对的集合,转换为流
        Set<Map.Entry<String, String>> entries = map.entrySet();
        Stream<Map.Entry<String, String>> stream5 = entries.stream();
        //静态方法
        Stream<Integer> integerStream = Stream.of(1, 2, 3, 4 );
        Integer [] arr={1,2,3,4,6};
        Stream<Integer> stream6= Stream.of(arr);

forEach方法

forEach方法用来遍历数组

import java.util.stream.Stream;
public class Demo02Stream {
    public static void main(String[] args) {
        Stream<Integer> stream1 = Stream.of(1, 2, 3, 4, 5, 6);
        stream1.forEach(i-> System.out.println(i));
        Stream<String> stream2 = Stream.of("张三", "张无忌", "张三丰", "张翠山");
        stream2.forEach(i-> System.out.println(i));
             }
}

在这里插入图片描述

fitler方法

对数据过滤

import java.util.stream.Stream;
public class Demo02Stream {
    public static void main(String[] args) {
        Stream<String> stream2 = Stream.of("张三", "张无忌", "张三丰", "张翠山","胡歌");
           //只要姓张的人
        Stream<String> stream3 = stream2.filter(name -> name.startsWith("张"));
        stream3.forEach(i-> System.out.println(i));
        }

}

在这里插入图片描述

map方法

把一种流转换为另一种流

import java.util.stream.Stream;
public class Demo02Stream {
    public static void main(String[] args) {
        Stream<String> stream = Stream.of("1", "2", "3", "4", "5");
        //把数据类型为String的流转换为Integer类型的流
        Stream<Integer> integerStream = stream.map((String s) -> {
             return Integer.parseInt(s);
                }
        );
       
    }

}

在这里插入图片描述
Limit和skip方法

import java.util.List;
import java.util.stream.Stream;
public class DemoStream {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add("张七是");
        Stream<String> stream = list.stream();
        //跳过第一个元素
        Stream<String> skip = stream.skip(1);
        //只要前三个元素
        Stream<String> limit = skip.limit(3);
        limit.forEach(name-> System.out.println(name));
      }
      }

在这里插入图片描述

count方法

count方法和forEach方法都是Strea流中的终结方法,一但使用,流就会关闭,所以对于同一个流来说,这两个方法不能同时用。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
public class DemoStream {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add("张七是");
        Stream<String> stream = list.stream();
        long count = stream.count();
        System.out.println(count);
       stream.forEach(name-> System.out.println(name));
       }}

在这里插入图片描述

静态方法concat

将两个流,合并成一个流

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Stream;
public class DemoStream {
    public static void main(String[] args) {
        List<String> list=new ArrayList<>();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");
        list.add("张七是");
        Stream<String> stream = list.stream();
        List<String> list1=new ArrayList<>();
        list1.add("胡歌");
        Stream<String> stream1 = list1.stream();

        Stream<String> concat = Stream.concat(stream, stream1);
        concat.forEach(name-> System.out.println(name));}}

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值