Jdk1.6、1.7、1.8、1.9的新特性

Consumer 接口

Consumer 接口表示执行在单个参数上的操作。


代码如下:


greeter.accept(new Person(“Luke”, “Skywalker”));

Comparator 接口

Comparator 是老中的经典接口, 8在此之上添加了多种默认方法:


代码如下:


Person p1 = new Person(“John”, “Doe”);

Person p2 = new Person(“Alice”, “Wonderland”);

comparator.compare(p1, p2);             // > 0


Optional 接口

Optional 不是函数是接口,这是个用来防止NullPointerException的辅助类型,这是下一届中将要用到的重要概念,现在先简单的看看这个接口能干什么:

Optional 被定义为一个简单的,其值可能是null或者不是null。在 8之前一般某个函数应该返回非空对象但是偶尔却可能返回了null,而在 8中,不推荐你返回null而是返回Optional


代码如下:


optional.isPresent();           // true

optional.get();                 // “bam”

optional.orElse(“fallback”);    // “bam”

optional.ifPresent((s) -> System.out.println(s.charAt(0)));     // “b”

Stream 接口

.util.Stream 表示能应用在一组元素上一次执行的操作序列。Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样你就可以将多个操作依次串起来。Stream 的创建需要指定一个数据源,比如 java.util.Collection的子类,List或者Set Map不支持。Stream的操作可以串行执行或者并行执行。

首先看看Stream是怎么用,首先创建实例代码的用到的数据List


代码如下:


stringCollection.add(“ddd2”);

stringCollection.add(“aaa2”);

stringCollection.add(“bbb1”);

stringCollection.add(“aaa1”);

stringCollection.add(“bbb3”);

stringCollection.add(“ccc”);

stringCollection.add(“bbb2”);

stringCollection.add(“ddd1”);

Java 8扩展了集合类,可以通过 Collection.stream() 或者 Collection.parallelStream() 来创建一个Stream。下面几节将详细解释常用的Stream操作:

Filter 过滤

过滤通过一个predicate接口来过滤并只保留符合条件的元素,该操作属于中间操作,所以我们可以在过滤后的结果来应用其他Stream操作(比如forEach)。forEach需要一个函数来对过滤后的元素依次执行。forEach是一个最终操作,所以我们不能在forEach之后来执行其他Stream操作。

代码如下:

stringCollection

    .stream()

    .filter((s) -> s.startsWith(“a”))

    .forEach(System.out::println);

// “aaa2”, “aaa1”


声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《Jdk1.6、1.7、1.8、1.9的新特性
本文地址:https://www.zhiletu.com/archives-4702.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

Pages: 1 2 3 4 5 6 7 8 9
上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!