我有字典
Output = [a:2, c:13, b:5, z:'Test']
我使用for循环如下
for(i in Output){
println(Output[i.key]);
}
是结果。
2
13
5
Test
但我期待结果(反向)。
Test
5
13
2
你能帮我吗?
答案 0 :(得分:0)
你拥有的不是"字典" (这不是Python),而是Map
。
未定义其条目的顺序,它只是一个没有任何排序的值的映射键。你获得的顺序是(伪)随机的,不能依赖。
顺便说一下。产生输出的Groovy方法越多,就不使用for-loop,而是e。克。
[a:2, c:13, b:5, z:'Test'].values().each { println it }
如果您想订购,则需要列表而不是地图,例如: G。像
中的地图列表[[a:2], [c:13], [b:5], [z:'Test']].reverse().collectMany { it.values() }.each { println it }
或
中的列表列表[['a', 2], ['c', 13], ['b', 5], ['z', 'Test']].reverse().collect { it[1] }.each { println it }
或者这个地图列表可能是这些解决方案中最干净的
[[key:'a', value:2], [key:'c', value:13], [key:'b', value:5], [key:'z', value:'Test']].reverse().collect { it.value }.each { println it }