找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索本站精品资源

首页 教程频道 查看内容

java Stream结合函数方法

作者:模板之家 2021-1-10 14:37 59人关注

java Stream的操作方法:1.映射,可以使用 map() 方法;2.排序;3.组合,reduce() 方法的主要作用是把 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学习网

全部回复(0)