• 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
  • 相关阅读:
    自己编译linux内核
    codeblocks中文输入及控制台乱码
    c快速学习代码
    二分法求方程解
    苹果公司前任首席执行官乔布斯语录
    html5特性
    lamp server快速搭建
    poj 1247 Magnificent Meatballs 解题报告
    Ural 1005 Stone Pilet 解题报告
    Ural 1020 Rope 解题报告
  • 原文地址:https://www.cnblogs.com/SeaSky0606/p/8836108.html
Copyright © 2020-2023  润新知