【转】java8-基础

2017-05-31  本文已影响17人  Vissioon

原文地址http://blog.csdn.net/myherux/article/details/52717492

(一)optional类

(二)Lambda表达式

```
List<String> names= Arrays.asList("peter", "anna", "mike", "xenia");
Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String a, String b) {
            return b.compareTo(a);
        }
    });
```

`java8`使用`lambda`表达式就不需要匿名对象了

```
Collections.sort(names,(String a,String b)->{return b.compareTo(a);});
```

简化一下:对于函数体只有一行代码的,你可以去掉大括号{}以及`return`关键字

```
Collections.sort(names,(String a,String b)->b.compareTo(a));
```

`Java`编译器可以自动推导出参数类型,所以你可以不用再写一次类型
```
Collections.sort(names, (a, b) -> b.compareTo(a));
```
```
##:[xenia, peter, mike, anna]
```

对于`null`的处理
```
List<String> names2 = Arrays.asList("peter", null, "anna", "mike", "xenia");
names2.sort(Comparator.nullsLast(String::compareTo));
System.out.println(names2);
##:[anna, mike, peter, xenia, null]
```

(三)Stream类

java.util.Stream 表示能应用在一组元素上一次执行的操作序列。

Stream 操作分为中间操作或者最终操作两种,最终操作返回一特定类型的计算结果,而中间操作返回Stream本身,这样你就可以将多个操作依次串起来。

Stream 的创建需要指定一个数据源,比如 java.util.Collection的子类,List或者SetMap不支持。

Stream的操作可以串行执行或者并行执行。

上一篇 下一篇

猜你喜欢

热点阅读