美文网首页
Jdk1.8关键字default和Stream流

Jdk1.8关键字default和Stream流

作者: Rain_z | 来源:发表于2020-08-19 11:44 被阅读0次

default

新增了一个default关键字,在接口中,可以实现方法,然后用default修饰,那么在实现类中不需要实现,就可以直接调用这个方法
用处:比如如果在List集合中实现了一个抽象方法,那么对于继承的ArrayList就可以直接使用,无需再实现方法,减少代码量和维护成本

Lombda表达式

Stream流

核心理念:只关注实现,不关注如何实现,如filter只是过滤,forEach只是遍历

  1. 使用Stream有两种模式:
    1.1. 集合对象获取如:list.stream()
    1.2. Stream流静态方法, 对象.of
String[] strArray = {"A12","A13"};
List<String> strList = new ArrayList<>(Arrays.asList(strArray));
//strList.stream().forEach(System.out::println);//这种方式可以直接使用流方法代替
strList.forEach(System.out::println);
//循环内部插入逻辑处理
strList.forEach(str -> {
            System.out.println("当前元素:" + str);
        });

打印结果:

A12
A13
当前元素:A12
当前元素:A13
  1. Stream流分为两种方法:
    2.1. 延迟方法:方法的返回值类型仍然是自身类型,支持链式调用(除了终结方法,都是延迟方法)
    2.2. 终结方法:方法的返回值不再是自身类型,不支持链式调用(forEach,count)
    2.2.1.Stream常用方法:filter,forEach,map,count,limit,skip,concat
    如:forEach方法属于终结方法,遍历之后无法再进行调用
    2.2.2. Stream流只能被消费(使用)一次,第一个Stream流调用方法完毕,数据就会转到下一个Stream流中,第一个Stream流就关闭了,如果需要讲一个流转到下一个流中可以使用map方法
  2. 函数式接口Predicate
    jdk1.8新增一个包java.util.functon包,这里面有很多类,用来支持函数式编程,其中一个接口就是predicate,一如定义两个过滤函数,可将其作为参数一样传递,同时predicate提供类似于逻辑操作符AND和OR方法,叫作and(),or(),可以和filter结合使用
Predicate<String> p1 = str -> str.startsWith("A");
Predicate<String> p2 = str -> str.length() == 2;
Stream.of("A1","A2","B1","B2","A12","A13").filter(p1.and(p2)).forEach(System.out::println);

打印结果:

A1
A2

相关文章

  • Jdk1.8关键字default和Stream流

    default 新增了一个default关键字,在接口中,可以实现方法,然后用default修饰,那么在实现类中不...

  • Java | Stream

    简介 Stream流 是 JDK1.8 加入的新特性,Stream流跟I/O流不同,Stream流用于操作数据源(...

  • JDK8新特性之Stream流

    是什么是Stream流 java.util.stream.Stream Stream流和传统的IO流,它们都叫流,...

  • 接口(二)

    版本在JDK1.8之后接口中 default关键字,修饰默认方法,默认方法可以带方法体,可通过接口的引用调用,在...

  • Stream操作

    1、创建Stream流 2、stream和parallelStream的简单区别 stream是顺序流,由主线程按...

  • JDK1.8新特性总结 Day37 2018-12-27

    JDK1.8新特性总结 一、十大特性 1.default关键字 2.Lambda表达式 3.接口新增:默认方法与静...

  • JDK新特性(五)——Stream流

    前言 Stream流的概念是在JDK1.8的时候提出来的,是对集合(Collection)对象功能的增强,它专注于...

  • Java Stream

    Stream 将其他类型转换成stream流 创建无穷Stream Collector 和 Collectors ...

  • 2020-07-04【Stream流】

    体验Stream流 Stream流的生成方式 Stream流的常见中间操作 Stream流的常见终结操作 Stre...

  • JDK1.8新特性--default关键字

    1、default关键字 描述 是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Ja...

网友评论

      本文标题:Jdk1.8关键字default和Stream流

      本文链接:https://www.haomeiwen.com/subject/beidqktx.html