遍历集合(传统方式以及使用Stream流)

1.传统方式遍历List集合
package com.Stream;

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

public class Demo01List {
    public static void main(String[] args) {
        //创建一个List集合,存储姓名
        List<String> list = new ArrayList<>();
        list.add("张无忌");
        list.add("周芷若");
        list.add("赵敏");
        list.add("张强");
        list.add("张三丰");

        //对List集合中的元素进行过滤,只要以张开头的元素,存储到一个新的集合中
        List<String> listA = new ArrayList<>();
        for (String s : list) {
           if (s.startsWith("张")){
               listA.add(s);
           }
        }

        //对listA集合进行过滤,只要姓名长度为3的人,存储到一个新的集合中
        List<String> listB = new ArrayList<>();
        for (String s : listA) {
            if (s.length()==3){
                listB.add(s);
            }
        }
        //遍历ListB集合
        for (String s : listB) {
            System.out.println(s);
        }
    }
}
2. 使用Stream流的方式,遍历集合

Stream流的方式,遍历集合,对集合中的数据进行过滤
Stream流是JDK1.8之后出现的
关注的是做什么,而不是怎么做

package com.Stream;

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

/*
   使用Stream流的方式,遍历集合,对集合中的数据进行过滤
   Stream流是JDK1.8之后出现的
   关注的是做什么,而不是怎么做

   */
public class Demo02Stream {
      public static void main(String[] args) {
          //创建一个List集合,存储姓名
          List<String> list = new ArrayList<>();
          list.add("张无忌");
          list.add("周芷若");
          list.add("赵敏");
          list.add("张强");
          list.add("张三丰");

          //对List集合中的元素进行过滤,只要以张开头的元素,存储到一个新的集合中
          //对listA集合进行过滤,只要姓名长度为3的人,存储到一个新的集合中
          //遍历ListB集合

          list.stream().filter((String name)->{
              return name.startsWith("张");}).filter((String name)->{
                  return name.length()==3;}).forEach((String name)->{
              System.out.println(name); });

          //优化Lambda表达式
          list.stream().filter(name->name.startsWith("张"))
                  .filter(name->name.length()==3)
                  .forEach(name-> System.out.println(name));
      }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值