Java 8 新特性之 Stream 流基础体验

Java 8 新特性之 Stream 流基础体验

package com.company;

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

public class Main {
    public static void main(String[] args) {
        learnStream();
    }

    public static void learnStream() {

        ////首先,创建一个1-6乱序的List
        List<Integer> lists = new ArrayList<>();
        lists.add(4);
        lists.add(3);
        lists.add(6);
        lists.add(1);
        lists.add(5);
        lists.add(2);

        //遍历list
        System.out.print("lists数据:");
        for (Integer elem : lists) {
            System.out.print(elem + ",");
        }

        System.out.println();
        System.out.println();

        //获取list中的最小值
        System.out.print("list中的最小值:");
        Stream<Integer> stream = lists.stream();
        Optional<Integer> min = stream.min(Integer::compareTo);
        if (min.isPresent()) {
            System.out.println(min.get());
        }

        System.out.println();

        //获取list中的最大值
        System.out.print("list中的最大值:");
        lists.stream().max(Integer::compareTo).ifPresent(System.out::println);

        System.out.println();

        //排序
        System.out.print("排序:");
        Stream<Integer> sorted = lists.stream().sorted();
        sorted.forEach(elem -> System.out.print(elem + ","));

        System.out.println();
        System.out.println();

        //过滤
        System.out.print("过滤list,只留下大于3的元素:");
        lists.stream().filter(elem -> elem > 3).forEach(elem -> System.out.print(elem + ","));

        System.out.println();

        //过滤
        System.out.print("过滤list,只留下大于0并且小于4的元素:");
        lists.stream().filter(elem -> elem > 0).filter(elem -> elem < 4).forEach(elem -> System.out.print(elem + ","));
        System.out.println();
        System.out.print("过滤list,只留下大于0并且小于4的元素,并排序:");
        lists.stream().filter(elem -> elem > 0).filter(elem -> elem < 4).sorted(Integer::compareTo).forEach(elem -> System.out.print(elem + ","));

        System.out.println();
        System.out.println();
        //经过了前面的这么多流操作,我们再来看看List里面的值有没有发生什么改变
        //遍历list
        System.out.print("原来lists数据:");
        for (Integer elem : lists) {
            System.out.print(elem + ",");
        }

    }
}

猜你喜欢

转载自www.cnblogs.com/angelye/p/9353177.html