[Java基础]体验Stream流

Posted Wecccccccc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java基础]体验Stream流相关的知识,希望对你有一定的参考价值。

在这里插入图片描述

代码如下:

package StreamTest;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class StreamDemo {
    public static void main(String[] args)
    {
        ArrayList<String> list = new ArrayList<String>();

        list.add("Tom");
        list.add("jack");
        list.add("张敏");
        list.add("张无忌");
        list.add("刘洋");
        list.add("Bom");
        list.add("张曼玉");

        ArrayList<String> zhangList = new ArrayList<String>();

        for (String s:list)
        {
            if (s.startsWith("张"))
                zhangList.add(s);
        }

        System.out.println(zhangList);

        ArrayList<String> threeList = new ArrayList<String>();

        for(String s:zhangList)
        {
            if (s.length()==3)
            {
                threeList.add(s);
            }
        }

        System.out.println(threeList);
    }
}

测试结果:

在这里插入图片描述
我们可以看到,按照需求实现以后,仅仅只是两个简单的过滤操作,我们就写了那么长的代码,那我们有没有办法有更好的方式实现这样的需求呢?

sure,用Stream流

在这里插入图片描述

代码如下:

package StreamTest;

import java.lang.reflect.Array;
import java.util.ArrayList;

public class StreamDemo {
    public static void main(String[] args)
    {
        ArrayList<String> list = new ArrayList<String>();

        list.add("Tom");
        list.add("jack");
        list.add("张敏");
        list.add("张无忌");
        list.add("刘洋");
        list.add("Bom");
        list.add("张曼玉");

        //Stream流来改进
//        list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(s -> System.out.println(s));
        list.stream().filter(s->s.startsWith("张")).filter(s->s.length()==3).forEach(System.out::println);
    }
}

测试结果:

在这里插入图片描述

以上是关于[Java基础]体验Stream流的主要内容,如果未能解决你的问题,请参考以下文章

java8新特性

Java基础-Stream流方法引用篇

[Java基础]Stream流综合练习

Java语言编程经验之基础语法20-Lambda&方法引用-21-函数式接口&Stream流

Java之Stream流的基础讲解

[Java基础]Stream流终结操作之forEach&count