Java8新特性 Stream流式思想(一)

遍历及过滤集合中的元素

  • 使用传统方式遍历及过滤集合中的元素
package cn.com.zq.demo01.Stream.test01.Stream;

import java.util.ArrayList;
import java.util.List;

/*
 *   使用 传统方式 遍历 及 过滤 集合
 *   需求 :
 *       1、第一步过滤,只需要 以 “张” 开头的名字
 *       2、第二步过滤只需要 ,名字长度为 2 的名字
 * */
public class Test01Stream {

    public static void main(String[] args) {
//        创建一个集合 List , 存储姓名 并根据要求 进行过滤
        List<String> nameList = new ArrayList<>();
        nameList.add("张三");
        nameList.add("李四");
        nameList.add("王五");
        nameList.add("赵六");
        nameList.add("田七");
        nameList.add("王八");
        nameList.add("张四");
        nameList.add("张三丰");

//        使用传统方式进行过滤

//         1、第一步过滤,只需要 以张开头的名字

//        需要 创建一个新的集合 对 第一次过滤之后的 姓名 进行存储
        List<String> listA = new ArrayList<>();
        for (String s : nameList) {  //使用增强 for 循环 对 集合进行遍历
            if (s.startsWith("张")) {
                listA.add(s);//将过滤后的结果 添加到新的集合中
            }
        }

        List<String> listB = new ArrayList<>();
        for (String s : listA) {
            if (s.length() == 2) {
                listB.add(s);
            }
        }

        for (String s : listB) {
            System.out.print(s + "  ");// 最终过滤结果  张三  张四
        }
    }
}

  

  • 使用使用Stream流的方式遍历及过滤集合中的元素
package cn.com.zq.demo01.Stream.test01.Stream;

import java.util.ArrayList;
import java.util.List;

/*
*   使用Stream流的方式 遍历 并 过滤集合
*       需求 :
            1、第一步过滤,只需要 以 “张” 开头的名字
            2、第二步过滤只需要 ,名字长度为 2 的名字
* */
public class Test02Stream {

    public static void main(String[] args) {
        //        创建一个集合 List , 存储姓名 并根据要求 进行过滤
        List<String> nameList = new ArrayList<>();
        nameList.add("张三");
        nameList.add("李四");
        nameList.add("王五");
        nameList.add("赵六");
        nameList.add("田七");
        nameList.add("王八");
        nameList.add("张四");
        nameList.add("张三丰");

//        使用 Stream 流的方式 ,对集合进行遍历,并过滤
//        1、第一步过滤,只需要 以 “张” 开头的名字

//        将集合转换为 Stream流, 直接调用Collection接口的一个默认方法 stream
        nameList.stream().filter(s->s.startsWith("张"))
                         .filter(s->s.length()==2)
                         .forEach(s-> System.out.print(s+"  "));// 输出结果 : 张三  张四
    }
}

  

原文:https://blog.csdn.net/qq_41319058/article/details/90319707

猜你喜欢

转载自www.cnblogs.com/qbdj/p/10945372.html
今日推荐