前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java8常用新特性实践

Java8常用新特性实践

作者头像
云海谷天
发布2022-08-09 14:39:35
1880
发布2022-08-09 14:39:35
举报
文章被收录于专栏:技术一点点成长

前言:

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

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

1) forEach()

2) stream()

3) Interface动态创建

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

代码语言:javascript
复制
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;
//            }
//            
//        });
    }
}

 == 测试输出结果 ==

代码语言:javascript
复制
*** forEach()新特性 ***
1
33
5
*** stream()新特性 ***
1
33
5
sum = 141
*** Interface动态创建新特性 ***
1
5
33
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-04-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档