返回信息流当我们写Arrays.sort(,)和PriorityQueue时常用到
但为什么comparator写法:
PriorityQueue<int[]> q = new PriorityQueue<int[]>(new Comparator<int[]>() {
public int compare(int[] a, int[] b) {
return a[2]-b[2];
}
});
比这种写法快一截:(经同学提醒为Lambda表达式写法):
PriorityQueue<int[]> q = new PriorityQueue<int[]>((a,b)->(a[2]-b[2]));
这是我昨天做leetcode373和522时发现的
还有692题
我实在想不明白为什么,百思不得其解
这是一条镜像帖。来源:北邮人论坛 / java / #58968同步于 2018/4/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
为什么java排序的comparator写法比Lambda表达式快很多?
PMS
2018/4/27镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
https://stackoverflow.com/questions/34585444/java-lambdas-20-times-slower-than-anonymous-classes
感觉和这个问题很像?大概是说第一次加载lambda表达式会有初始化开销
【 在 w86568376 的大作中提到: 】
: https://stackoverflow.com/questions/34585444/java-lambdas-20-times-slower-than-anonymous-classes
: 感觉和这个问题很像?大概是说第一次加载lambda表达式会有初始化开销
哇。。。太感谢了,我第一次知道那种写法的学名叫Lambda表达式,我学C++时怎么也没弄懂Lambda表达式,后来学Java时就弃疗了,我现在就去改改题目
【 在 ml3615556 的大作中提到: 】
: 实际中是没有什么影响的,大型应用一般都会预热一下
: 通过『我邮2.0』发布
刷LeetCode时影响就比较明显了
【 在 Nroskill 的大作中提到: 】
: 个人猜测 lambda抽象层次比原生语法高 性能有折损 当然很可能是像楼上说的那样 只是初次加载慢
太有道理了