Stream流 - 01

package com.wu.stream._01;

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

 /*
       stream流的使用
        1.生成流(通过数据源(集合 数组等)生成流 (list.stream))
        2.中间操作(一个流后面可以跟随零个或者多个中间操作,其目的主要是打开流,做出某种程度的数据过滤/映射
                   然后返回一个新的流教给下个操作使用 (filter()))
        3.终结操作(一个流只能有一个终结操作 当这个操作执行后 流就被使用”光“了 无法在被操作
                    所以者必定是最后一个操作 (forEach() )
        stream流的常见生成方式
          Collection体系的集合可以使用默认方法stream()生成流default Stream<长> stream(
 */


public class Demo01 {

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("朱元璋");
        list.add("刘伯温");
        list.add("张三丰");
        list.add("张无忌");
        list.add("鬼剑士");
        list.add("神枪手");
        list.add("张飞");

//        list.stream().filter(s -> s.startsWith("张")).filter(s -> s.length() == 3)
//                .forEach(System.out::println);

        //直接阅读代买的字面意思即可完成展示无关逻辑方式的语义:获取流 过滤张 过滤长度为3 诼一打印
        //filer 过滤(已张开头的  长度为3的)
        list.stream().filter(s -> s.startsWith("张") && s.length() == 3)
                .forEach(System.out::println);
//        demo01(list);

    }

    //stream体验
private static void demo01(ArrayList<String> list){
    //普通for循环
    for (int i = 0; i < list.size(); i++) {
        String s = list.get(i);
        System.out.println(s);
    }

    System.out.println("--------------------------------");
    //迭代器
    Iterator<String> iter = list.iterator();
    while (iter.hasNext()){
        String s = iter.next();
        System.out.println(s);
    }
    System.out.println("---------------------------------");
    //stream流的终结方法forEach
    list.forEach(System.out::println);
    System.out.println("---------------------------------");
    list.forEach(s -> System.out.println(s));
}

private static void demo02(ArrayList<String>list){
    // 把集合中所有 ”张“ 开头的元素存储到一个新的集合中
    ArrayList<String> list1 = new ArrayList<>();
    for (String s :list){
        if (s.startsWith("张")){
            list1.add(s);
        }
    }

    //把 ”张“ 开头的集合中长度为三的元素存储到新的集合中
    ArrayList<String> list2 = new ArrayList<>();
    for (String s : list1){
        if (s.length() == 3){
            list2.add(s);
        }
    }

    for (String s : list2){
        System.out.println(s);
    }
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值