java Stream结合函数方法

2026-01-29 0 59,666

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.映射

如果想通过某种操作把一个流中的元素转化成新的流中的元素,可以使用 map() 方法。

public class MapStreamDemo {
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("周杰伦");
        list.add("王力宏");
        list.add("陶喆");
        list.add("林俊杰");
        Stream stream = list.stream().map(String::length);
        stream.forEach(System.out::println);
    }
}

2.排序

    public  void test3(){
        //(1)自然排序
        List list  = Arrays.asList(4,3,7,9,12,8,10,23,2);
        Stream stream = list.stream();
        stream.sorted().forEach(System.out::println);
        //(2)对象排序:对象类可以先实现comparable接口,或者是直接指定
        //第一种:先实现compable接口
        List studentList  = StudentData.getStudents();
        studentList.stream().sorted().forEach(System.out::println);
        //第二种:直接指定comparable
        List studentList1  = StudentData.getStudents();
        studentList1.stream()
                .sorted((e1,e2)-> Integer.compare(e1.getAge(),e2.getAge()))
                .forEach(System.out::println);
    }

3.组合

reduce() 方法的主要作用是把 Stream 中的元素组合起来,它有两种用法:

Optional reduce(BinaryOperator accumulator)

没有起始值,只有一个参数,就是运算规则,此时返回 Optional。

T reduce(T identity, BinaryOperator accumulator)

有起始值,有运算规则,两个参数,此时返回的类型和起始值类型一致。

public class ReduceStreamDemo {
    public static void main(String[] args) {
        Integer[] ints = {0, 1, 2, 3};
        List list = Arrays.asList(ints);
 
        Optional optional = list.stream().reduce((a, b) -> a + b);
        Optional optional1 = list.stream().reduce(Integer::sum);
        System.out.println(optional.orElse(0));
        System.out.println(optional1.orElse(0));
 
        int reduce = list.stream().reduce(6, (a, b) -> a + b);
        System.out.println(reduce);
        int reduce1 = list.stream().reduce(6, Integer::sum);
        System.out.println(reduce1);
    }
}

以上就是关于java Stream映射、排序和组合的操作方法介绍,根据上面的简单分析运行代码节课实现,下次遇到这类问题,可以考虑下使用Stream来解决。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:以上部本文内容由互联网用户自发贡献,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。投诉邮箱:3758217903@qq.com

ZhiUp资源网 java教程 java Stream结合函数方法 https://www.zhiup.top/11113.html

相关