JDK8特性 Stream 常用API

public class StreamAPI {
    public static void main(String[] args) {
//        List<String> list = new ArrayList<>();
//        list.add("A");
//        list.add("B");
//        list.add("C");
//        list.add("D");
//        System.out.println(list);   // [A, B, C, D]
//
//        // map() 元素都加上前缀+
//        list = list.stream().map((e) -> "+" + e).collect(Collectors.toList());
//        System.out.println(list);   // [+A, +B, +C, +D]
//
//        // filter() 过滤不是B和C的元素
//        list = list.stream().filter((e) -> "B".equals(e) || "C".equals(e)).collect(Collectors.toList());
//
//        // peek() 多次访问 一次循环  peek内部是一个Consumer接口,无返回值
//        list.stream().peek((String e) -> {
//            System.out.println("peek1 ( " + e + ")");
//        }).peek((String e) -> {
//            System.out.println("peek2 ( " + e + ")");
//        }).forEach(System.out::println);

        List<Integer> list1 = new ArrayList<>();
        for (int i = 1; i <= 10; i ++) {
            list1.add(new Random().nextInt(50));
        }
//        System.out.println(list1);  // [33, 30, 19, 18, 11, 17, 2, 8, 34, 25]
//
//
//        // sorted() 排序
//        list1 = list1.stream().sorted((x, y) -> x - y).collect(Collectors.toList());
//        System.out.println(list1);  // [33, 30, 19, 18, 11, 17, 2, 8, 34, 25]

        // max()
        Optional optional = list1.stream().max((x, y) -> x - y);
        System.out.println(optional.get());

        // min()
        Optional optional1 = list1.stream().max((x, y) -> y - x);
        System.out.println(optional1.get());

        // skip()

        // limit()

        // distinct()

        // reduce()



    }
}
上一篇:java多线程复习与巩固(五)


下一篇:包含min函数的栈