Java8常用新特性实践
前言:
时下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
-------- 以上内容纯属个人学习总结,不代表任何团体或单位。若有理解不到之处请见谅!---------