Java8常用新特性实践

java

前言:

  时下Oracle开速迭代的Java社区以即将推出Java10,但尴尬的是不少小中企业仍使用JDK7甚至JDK6开发。

  从上面列出的JDK8特性中我们可以发现Java8的部分特性很明显的是从Scala借鉴过来,其设计目的只要是为了让代码更精简同时使代码可读性更高。本人在实际项目中比较常用的是3个新特性:

1) forEach()

2) stream()

3) Interface动态创建

以下demo已经过本人亲测,现提供给有需要的朋友!

import java.util.Arrays;

import java.util.Collections;

import java.util.List;

import java.util.stream.Collectors;

/**

* Java8常用新特性测试

* @author John

* @date 2018-04-14 21:54

*

*/

public class Java8NewFeature {

public static void main(String[] args) {

System.out.println("*** forEach()新特性 ***");

showForeach();

System.out.println("*** stream()新特性 ***");

showStream();

System.out.println("*** Interface动态创建新特性 ***");

showEasyInterface();

}

public static void showForeach() {

Integer numbers[] = { 1, 33, 5 };

List<Integer> numbersList = Arrays.asList(numbers);

numbersList.forEach(System.out::println);

}

public static void showStream() {

Integer numbers[] = { 1, 33, 5, 100, 2 };

List<Integer> numbersList = Arrays.asList(numbers);

List<String> newNumbers = numbersList.stream()

.filter(num -> (num % 2 == 1)).map(num -> "" + num)

.collect(Collectors.toList());

newNumbers.forEach(System.out::println);

int sum = numbersList.stream().reduce((a, b) -> (a + b)).get();

System.out.println("sum = " + sum);

}

public static void showEasyInterface() {

Integer numbers[] = { 1, 33, 5 };

List<Integer> numbersList = Arrays.asList(numbers);

Collections.sort(numbersList, (a, b) -> (b - a));

numbersList.forEach(System.out::println);

// JDK7实现自定义排序

// Collections.sort(numbersList,new Comparator<Integer>() {

//

// @Override

// public int compare(Integer o1, Integer o2) {

// // TODO Auto-generated method stub

// return o2 - o1;

// }

//

// });

}

}

 == 测试输出结果 ==

*** forEach()新特性 ***

1

33

5

*** stream()新特性 ***

1

33

5

sum = 141

*** Interface动态创建新特性 ***

1

5

33

以上是 Java8常用新特性实践 的全部内容, 来源链接: utcz.com/z/392987.html

回到顶部