栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Stream

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Stream

Stream API(学习笔记)
package com.atguigu.java8;

import org.testng.annotations.Test;

import java.util.*;
import java.util.stream.Stream;


public class TestStreamAPI2 {

    List emplyees = Arrays.asList(
            new Employee("张三", 18, 1132),
            new Employee("李四", 48, 1232),
            new Employee("王五", 18, 3432),
            new Employee("赵六", 45, 1232),
            new Employee("赵六", 45, 1232),
            new Employee("赵六", 45, 1232)
    );
    // 中间操作 不会有任何结果,需要终止操作才有结果
    

    @Test
    public void test7(){
        List list = Arrays.asList("sss","bbb","aaa","ccc","ddd");
        list.stream()
            .sorted()
            .forEach(System.out::println);
        System.out.println("-----------------------------");

        // 这里有问题暂时解决不了,主要是getAge()用不了equals和compareTo两个方法
        
    }

    

    @Test
    public void test5(){
        List list = Arrays.asList("aaa","bbb","ccc","ddd");

        list.stream()
            .map((str) -> str.toUpperCase())
            .forEach(System.out::println);

        System.out.println("---------------------------------");

        emplyees.stream()
                .map(Employee::getAge)
                .forEach(System.out::println);

        System.out.println("---------------------------------");

        Stream> stream = list.stream()
            // map 返回的是一个Stream流,其Stream<参数>中的参数看的是TestStreamAPL2::filterCharacter该函数的返回类型Stream
            .map(TestStreamAPI2::filterCharacter);  // {{a,a,a},{b,b,b}}
        stream.forEach((sm) -> {
            sm.forEach(System.out::println);
        });

        System.out.println("-------------------------------------");

        Stream stream2 = list.stream()
            .flatMap(TestStreamAPI2::filterCharacter);  //{a,a,a,b,b,b}
        stream2.forEach(System.out::println);
    }
    // 自己定义一个方法名为 filterCharacter
    public static Stream filterCharacter(String s){
        List list = new ArrayList<>();
        for (Character character : s.toCharArray()) {
            list.add(character);
        }
        return list.stream();
    }

    

    @Test
    public void test4() {
        emplyees.stream()
                .filter((e) -> e.getSalary() > 1200)
                .skip(1)
                .distinct()
                .forEach(System.out::println);
    }

    @Test
    public void test3() {
//        Stream stream = emplyees.stream()
//                                          .filter((e) -> e.getAge() > 35)
//                                          .limit(1);
//        stream.forEach(System.out::println);
        emplyees.stream()
                .filter((e) -> {
                    System.out.println("段落");
                    return e.getSalary() > 1000;
                })
                .limit(2)
                .forEach(System.out::println);
    }

    //内部迭代:迭代操作由Stream APL 完成
    @Test
    public void test1() {
        // 中间操作:不会执行任何操作
        Stream stream = emplyees.stream()
                .filter((e) -> {
                    System.out.println("Stream APL 的中间操作");
                    return e.getAge() > 35;
                });
        // 终止操作:一次执行全部中间内容,“惰性求值”
        stream.forEach(System.out::println);
    }

    //外部迭代
    @Test
    public void test2() {
        Iterator it = emplyees.iterator();
        while (it.hasNext()) {
            System.out.println(it.next());
        }
    }

    // 测试集合中的add(Object obj) 和 addAll(Collection c)
    @Test
    public void test6(){
        List list = Arrays.asList("aaa","bbb","ccc","ddd");
        List list2 = new ArrayList<>();
        list2.add(11);
        list2.add(22);
        list2.addAll(list);
        System.out.println(list2);
    }
}



转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号