java8新特性

Posted 一个想飞的菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8新特性相关的知识,希望对你有一定的参考价值。

lambda四大内置核心函数式接口:

Consumer<T> :消费性接口

  void accept(T t);

Suppiler<T>:供给性接口

  T get();

Function<T,R>:函数型接口

  R apply(T t);

Predicate<T> :断言型接口

  boolean test(T t);

时间和日期得处理:

1.LocalDate LocalTime localDateTime

得到当前得时间

2、Instant

时间戳偏移量距离我们得时间是8,获取得是UTC时区

3、Duration

计算俩个时间之间得间隔

4、Period

计算俩个日期之间得间隔

流的操作(Stream)

流得三个步骤:

建立流:

  建立方式:

  数组得话用Arrarys.asList作为list或者直接用

 Arrays.stream(employees)

,然后变成集合用.stream().如果是集合得话直接用.stream();

  

  //通过Collection系列提供Stream  和里面的.stream方法
        List<String > strings=new ArrayList<>();
        Stream<String> stringStream=strings.stream();

        //通过Arrarys里面的静态方法stream
        Employee[] employees=new Employee[10];
        Stream<Employee> employees1=  Arrays.stream(employees);

        //通过Stream中的of方法
        Stream<String > stringStream1=Stream.of("dsag","gfdgfh","uerbg");

        //创建无限流
        Stream<Integer> stream=Stream.iterate(2,(x)->x+2);
        stream.limit(10).forEach(System.out::println);

 

中间操作:

筛选与切片:

filter:接受lambda,从流中排除某些元素;

limit:截断流,使其元素不超过给定数量

skip(n)跳过元素,返回一个扔掉了前n个元素得流。若流中元素不足n个,则返回一个空流,与limit(n)互补;

distinct :筛选,通过流所生成得元素得hashCode和equals去除重复元素。

map :映射,接受lambda,将元素转化成其他形式或者提取信息,接受一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素;(用map把要的项提取出来,不是过滤,过滤不会提取某一项出来)

flatMap: 接受一个函数作为参数,将每个值都换成另一个流,然后将所有流连接成一个流;

sort() 自然排序

sort(Comparator com)--定制排序.

(中间操作得话返回得式一个流,但是没有)

终止操作:

reduce():归约,reduce(T identity,BinaryOperator)/reduce(BinaryOperator)可以将流中元素反复结合起来,得到一个值。reduce(Double::sum)

collect():收集,将流转化为其他形式,接受一个Collector接口得实现,用于给Stream中元素做汇总得方法。

Collectors.求和得、平均数得、最大值,最小值、总数得,转换成list得,转化成map得。都有对应得方法。.foreach对其中得每一个进行操作。

groupingBy: 分组,一个参数就是分组,俩个参数,第二个参数是进一步分组。

然后Collectors.summarzingdouble/int()这个用变量接了之后又求求和得、平均数得、最大值,最小值、总数得方法在。

Collectors.joining: 连接

 


以上是关于java8新特性的主要内容,如果未能解决你的问题,请参考以下文章

2020了你还不会Java8新特性?Java 8新特性介绍

java8新特性——Lambda表达式

Java8新特性

java8新特性总结

Java8新特性

Java8新特性-官方库新特性