zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    VS2012开发调试PHP扩展
    Android webapi
    拖动上传文件
    IE11被识别为mozilla
    jquery validate.js 不能验证
    如何安装或卸载 Internet Explorer 9?
    C# 操作IIS -App & AppPools
    Filewatcher
    Notepad++使用技巧
    u-boot-2012.04.01移植笔记——支持NAND启动
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/8836108.html
Copyright © 2011-2022 走看看