lambda表达式 java 效率_Java8新特性效率之Lambda

1.我的环境如下:

CPU:I5-2430M 2.4GHz 双核四线程

内存:8G

JDK版本:1.8.0_25

2.生成数据的核心代码

一个Student类,只有一个age属性,一个方法,是根据参数生成一定数量的数据

public static List getStudent(long count)

{

List lists = new ArrayList<>();

for(long i = 1; i<= count;i++)

lists.add(new Student((int)(Math.random() * 100)));

return lists;

}

3.测试代码

/** 匿名内部类测试 */

public static void Filter1(List lists)

{

long start = System.currentTimeMillis();

Stream man1 = lists.stream().filter(

new Predicate()

{

public boolean test(Student student)

{

return(student.getAge() >= 18);

}

});

long end = System.currentTimeMillis();

System.out.println(end - start);

}

/** lambda测试 */

public static void Filter2(List lists)

{

long start = System.currentTimeMillis();

Stream man2 = lists.stream().filter(student -> {return student.getAge() >= 18;});

long end = System.currentTimeMillis();

System.out.println(end - start);

}

public static void main(String[] args)

{

List lists = DataDao.getStudent(1000000);

System.out.println("数据生成完毕!");

//每次开启一个,保证运行情况尽量一致

//Filter1(lists);

Filter2(lists);

}

4.我的测试结果如下:

9d1a5c459a2b0958b95a078804e9bd34.png

从测试结果可以得出,Lambda还是比较耗时的

5.案例存在的问题

每次都是生成数据,每个测试方法数据不完全一样,所以每次运行3次,进行参考

6.结论

Java8有了Lambda之后,确实挺方便的,但是运行效率并没有原来匿名内部类的效率高,所以在要求效率不高,但是代码美观的时候,建议使用Lambda,在要求高效率的时候,可以考虑使用原来匿名内部类,

我相信Java的Lambda语法会越来越完善的,效率也会提高的!

由于我的水平有限,如果有什么问题或者有更好的测试方法,欢迎大家留言!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值