欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Stream学习笔记

程序员文章站 2022-05-22 20:35:40
...

stream(),collect()方法都是java8的新特性,同事们都在用了。代码都看不懂了。我来学习一下。
为什么用Stream?
(因为代码看不懂了。。。)
网上参考这篇,写的很详细很有高度,Stream 可以并行化操作。但是要怎么验证。输出时间测试。
https://developer.ibm.com/zh/articles/j-lo-java8streamapi/
Stream
是java8抽象出的新概念。不是InputStream,不是OutputStream。不是集合元素,不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。Stream 可以并行化操作。是一个接口。
初步使用
获取学生列表中所有学生年龄
代码

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author whl
 * @date 2020/10/30
 */
public class StreamTest {
    public static void main(String[] args) {
        List<Student> list = new ArrayList<>();
        for(int i = 0;i < 10; i++) {
            Student student = new Student("K'" + i,"男","1"+i);
            list.add(student);
        }
        // stream数据源可以是java中的容器 弄一个list<student>来看看
        // 获取年龄
        
        // 过去方式
        System.out.println("我熟悉的...");
        List<String> ages = new ArrayList<>();
        for(Student s : list) {
            ages.add(s.getAge());
        }
        for(String age : ages) {
            System.out.println(age);
        }
        // Stream方式 java 8抽象出来的这个概念去做
        System.out.println("Stream...");
        // stream 为集合创建串行流
        // map 方法用于映射每个元素到对应的结果(元素 -> 元素结果)
        Stream<Student> stream = list.stream();// list.stream()是一个流
        System.out.println("stream -> "+stream);
        Stream<String> stringStream = list.stream().map(student -> student.getAge());// .map返回一个新的流
        System.out.println("stringStream -> "+stringStream);
        List<String> agesNew = list.stream().map(student -> student.getAge()).collect(Collectors.toList());
        for(String age : ages) {
            System.out.println(age);
        }
    }
}

运行结果
Stream学习笔记

相关标签: Stream