首页 > 编程语言 > 详细

Java8 新特性

时间:2019-10-23 18:27:09      阅读:99      评论:0      收藏:0      [点我收藏+]

1.Lambda表达式

  a.适用范围:只有一个抽象方法的函数式接口

  b.函数式接口注解:@FunctionalInterface(编译时若该接口不符合函数式接口,会提示异常)

  c.使用:

    1)创建函数式接口

@FunctionalInterface
public interface Increase {

    public int increase(int num);

}

 

    2)使用

    public static void main(String[] args) {
        //一行执行语句
        Increase increase = (num) -> num + 1;
        System.out.println(increase.increase(1));

        //多行执行语句
        increase = (num) -> {
            num = num + 1;
            return num;
        };
        System.out.println(increase.increase(3));
    }

 

 

2.Stream流

  a.使用

        List<TestBean> beanList = new ArrayList<>();
        TestBean goods = new TestBean();
        goods.setCode(10);
        beanList.add(goods);

        for (int i = 20; i >= 0; i--) {
            goods = new TestBean();
            goods.setCode(i);
            beanList.add(goods);
        }

        goods = null;
        beanList.add(goods);

        //流操作
        List<Integer> resultList = beanList.stream() //生成流
                .filter((bean) -> bean != null) //过滤
//                .map((bean) -> bean.getCode())
                .map(TestBean::getCode) //映射每个元素到对应的结果
                .distinct() //去重
                .sorted()   //排序
                .skip(5)    //跳过5个
                .limit(10)   //取10个
                .collect(Collectors.toList());  //将流转换成集合

        //合并字符串
        String resultString = resultList.stream().map((code) -> String.valueOf(code)).collect(Collectors.joining(", "));
        System.out.println(resultString);

        //循环
//        resultList.forEach((code) -> System.out.println(code));
        resultList.forEach(System.out::println);

 

Java8 新特性

原文:https://www.cnblogs.com/vettel0329/p/11727346.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!