boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Java版 - 这个闭包怎么写?
相关主题
这几年Java跟其他语言的差距拉大了。
ArrayList vs Array, StringBuffer vs String, 大侠们给讲讲有
Java里面可以暂时禁用Garbage Collection吗?
再请教一个 编译错误
Java sucks big time!
请问javax.portlet包在JDK的哪个jar文件里面(在线等)
java SE 的源代码在哪里
现在写代码还有人开着API么?
同一个Lock锁两次,性能比较差
编程最重要的是逻辑思维能力
相关话题的讨论汇总
话题: 闭包话题: map话题: key话题: groovy话题: ken
进入Java版参与讨论
1 (共1页)
N***m
发帖数: 4460
1
初学groovy,遇到一个小问题。想把map每个key+1怎么写?
我如下写运行出错:
def f = [1:'ken',2:'sam',3:'bob'].collect
{entry-> entry.setKey(entry.getKey()+1);return entry}
3x!
o**1
发帖数: 6383
2
没有setKey这个东西。
只能setValue

【在 N***m 的大作中提到】
: 初学groovy,遇到一个小问题。想把map每个key+1怎么写?
: 我如下写运行出错:
: def f = [1:'ken',2:'sam',3:'bob'].collect
: {entry-> entry.setKey(entry.getKey()+1);return entry}
: 3x!
:

N***m
发帖数: 4460
3
我不太明白:)
http://groovy.codehaus.org/gapi/groovy/util/MapEntry.html
这个API里面的setkey是做什么用的?

【在 o**1 的大作中提到】
: 没有setKey这个东西。
: 只能setValue

o**1
发帖数: 6383
4
我也是刚开始学 Groovy/Grails.
[1:'ken',2:'sam',3:'bob'] 这个Map的类型是 LinkedHashMap,
所以每个entry是 LinkedHashMap.Entry 类型,而不是 groovy的 MapEntry

【在 N***m 的大作中提到】
: 我不太明白:)
: http://groovy.codehaus.org/gapi/groovy/util/MapEntry.html
: 这个API里面的setkey是做什么用的?

N***m
发帖数: 4460
5
你的意思是key不能变?

【在 o**1 的大作中提到】
: 我也是刚开始学 Groovy/Grails.
: [1:'ken',2:'sam',3:'bob'] 这个Map的类型是 LinkedHashMap,
: 所以每个entry是 LinkedHashMap.Entry 类型,而不是 groovy的 MapEntry

o**1
发帖数: 6383
6
是,我觉得Key不能变。
我能想出来的办法是产生一个新 map
Map n = [:]
[1:'ken',2:'sam',3:'bob'].each{
n.put(it.key+1, it.value)
}
print n

【在 N***m 的大作中提到】
: 你的意思是key不能变?
N***m
发帖数: 4460
7
恩,这样可行。LinkedHashMap key不能变是因为什么?
是因为不符合原来的插入顺序嘛?

【在 o**1 的大作中提到】
: 是,我觉得Key不能变。
: 我能想出来的办法是产生一个新 map
: Map n = [:]
: [1:'ken',2:'sam',3:'bob'].each{
: n.put(it.key+1, it.value)
: }
: print n

o**1
发帖数: 6383
8
所有 Map 的Key都是Read Only.
这不是groovy的事,是JDK就这么design的。
如果key是 mutable object, reference不能变,但是可以指向别的object.
但是这是强烈不推荐的,会造成很隐藏的bug.

【在 N***m 的大作中提到】
: 恩,这样可行。LinkedHashMap key不能变是因为什么?
: 是因为不符合原来的插入顺序嘛?

N***m
发帖数: 4460
9

3x a lot!

【在 o**1 的大作中提到】
: 所有 Map 的Key都是Read Only.
: 这不是groovy的事,是JDK就这么design的。
: 如果key是 mutable object, reference不能变,但是可以指向别的object.
: 但是这是强烈不推荐的,会造成很隐藏的bug.

r*****l
发帖数: 2859
10
这个数据结构可能更适合你:
f = [[1:'ken'],[2:'sam'],[3:'bob']]

【在 N***m 的大作中提到】
: 初学groovy,遇到一个小问题。想把map每个key+1怎么写?
: 我如下写运行出错:
: def f = [1:'ken',2:'sam',3:'bob'].collect
: {entry-> entry.setKey(entry.getKey()+1);return entry}
: 3x!
:

1 (共1页)
进入Java版参与讨论
相关主题
编程最重要的是逻辑思维能力
java.security.KeyStore
Java interivew questions(10-30)
急问hibernater query
JPA Criteria API select question
菜鸟请教jsp和ejb
你们有人测试过这种语法么?
Provide A Interview Question
return type, map or object
发现LinkedHashMap是个好东东
相关话题的讨论汇总
话题: 闭包话题: map话题: key话题: groovy话题: ken