请教 groovy 闭包问题

lwmonster 2010-06-02 08:23:23
谁能给解释一下这个 闭包:


def valueList = [15,10,8,51,36]
valueList.sort{x,y->
return x - y
}


谢谢~~~
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
NONE9 2010-06-03
  • 打赏
  • 举报
回复
上面写错了,倒序是: y.objectId - x.objectId
NONE9 2010-06-03
  • 打赏
  • 举报
回复
ObjList.sort{ x,y -> 
x.objectId - y.objectId
}


倒序就: x.objectId + y.objectId

objectId不是数字就用:
x.objectId.compareTo(y.objectId)
lwmonster 2010-06-02
  • 打赏
  • 举报
回复
谢谢,其实我不是很懂java 的,我现在想问的是 我有一个列表 ObjList, 存了一系列的对象,其中的对象都有一个getObjectId()的方法,我想把 这个ObjList根据 getObjectId()取得的Id排序,应该怎么写?

我写成这样:ObjList.sort{ x,y -> x.getObjectId().compareTo(y.getObjectId()) <=> y.getObjectId().compareTo(x.getObjectId()) }

结果显示没有排序,请问应该怎么写呢?

[Quote=引用 2 楼 xuhbiao 的回复:]
Java code

Collections.sort(valueList, new Comparator() {

public int compare(Object o1, Object o2) {
Integer i1 = (Integer)o1;
Integer i2 = (Integer)……
[/Quote]

NONE9 2010-06-02
  • 打赏
  • 举报
回复

Collections.sort(valueList, new Comparator() {

public int compare(Object o1, Object o2) {
Integer i1 = (Integer)o1;
Integer i2 = (Integer)o2;
return i1 - i2;
}

});

因为Groovy里不支持匿名内部类写法。。。。这个总该明白了吧?
lwmonster 2010-06-02
  • 打赏
  • 举报
回复
想知道 这个闭包是怎么操作才完成排序的?

50,528

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧