技术文章 > java >  java基础 > 正文

java Stream结合函数方法

小妮浅浅

当我们想对流进行操作时,就要用到Stream,其用法除了最基础的过滤外,还有映射、排序和组合的使用,这也是我们在学习java基础知识时不可缺少的运用。本次我们会使用Stream来带大家实现这些操作,下面就其中结合其它函数的实现,分别进行深入的讲解。

1.映射

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

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

2.排序

    public  void test3(){
        //(1)自然排序
        List<Integer> list  = Arrays.asList(4,3,7,9,12,8,10,23,2);
        Stream<Integer> stream = list.stream();
        stream.sorted().forEach(System.out::println);
        //(2)对象排序:对象类可以先实现comparable接口,或者是直接指定
        //第一种:先实现compable接口
        List<Student> studentList  = StudentData.getStudents();
        studentList.stream().sorted().forEach(System.out::println);
        //第二种:直接指定comparable
        List<Student> 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<Integer> list = Arrays.asList(ints);
 
        Optional<Integer> optional = list.stream().reduce((a, b) -> a + b);
        Optional<Integer> 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来解决。

免费视频教程
本文原创发布python学习网,转载请注明出处,感谢您的尊重!
相关文章
 java管道流写入报错
 对象流在java中的读写
 java数据流的工作原理
 java数据流进行二进制的读写
 java数据流的高级用法
 java压缩流的压缩与解压
 Stream函数在java中的使用
 java中Stream创建的方法
相关视频章节
 网络爬虫
 云端部署Web应用程序视频
 Web应用框架Flask和文件模板
 Web应用程序开发概述
 继承和多态
作者信息
推荐视频
视频教程分类