JAVA8新特性学习总结

  • 函数式编程
  • Optional类
  • 日期时间API
  • Base64

一、函数式编程

函数式编程的基本理论不再讲述,说一下个人的理解,函数式编程的直接好处是代码层次的复用与抽象,使代码更简洁,复用度更高

以下实例完成一下对象的数据比较过程,对比非函数化编程与函数化编程的优缺点,期望对大家有所帮助。以下是对苹果重量进行排序的过程
1、创建一个Apple实体类:

public class Apple {
    private Integer weight; //重量
    private String color; //颜色

    public Apple(Integer weight, String color) {
        this.weight = weight;
        this.color = color;
    }

    public Integer getWeight() {
        return weight;
    }

    public void setWeight(Integer weight) {
        this.weight = weight;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    @Override
    public String toString() {
        return "Apple{" +
                "weight=" + weight +
                ", color='" + color + '\'' +
                '}';
    }
}

2、JAVA7中的实现:

    @Test
    public void testJava7() {
        //创建苹果列表
        List<Apple> appleList = Arrays.asList(
                new Apple(36, "green")
                , new Apple(45, "red")
                , new Apple(89, "orange")
                , new Apple(102, "red")
                , new Apple(39, "green")
        );
        //排序前
        System.out.println(appleList);
        //排序
        appleList.sort(new Comparator<Apple>() {
            @Override
            public int compare(Apple o1, Apple o2) {
                return o1.getWeight().compareTo(o2.getWeight());
            }
        });
        //排序后
        System.out.println(appleList);
    }

3、JAVA8中实现排序

    @Test
    public void testJava8() {
        List<Apple> appleList = Arrays.asList(
                new Apple(36, "green")
                , new Apple(45, "red")
                , new Apple(89, "orange")
                , new Apple(102, "red")
                , new Apple(39, "green")
        );
        //排序前
        System.out.println(appleList);
        appleList.sort(Comparator.comparing(Apple::getWeight));
        //排序后
        System.out.println(appleList);
    }

// todo 20190729 未完待更.................

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Java 8自Java 5(发行于2004)以来最具革命性的版本。Java 8 为Java语言、编译器、类库、开发...
    huoyl0410阅读 721评论 1 2
  • Nothing is imposible for a willing heart. Java 8 (又称为 jdk...
    北纬26阅读 1,090评论 1 6
  • 前言:Java 8 已经发布很久了,很多报道表明Java 8 是一次重大的版本升级。在Java Code Geek...
    糖宝_阅读 1,350评论 1 1
  • 目录结构 介绍 Java语言的新特性2.1 Lambdas表达式与Functional接口2.2 接口的默认与静态...
    夜风月圆阅读 575评论 0 2
  • 早 整理工作文件 晚上整理东西,明天出发杭州
    丽丽我我阅读 131评论 0 0

友情链接更多精彩内容