我有一个地图,其中一个键包含多个值
datamap = [ 'Antenna Software':[ 'Salarpuria', 'Cessna', 'Vrindavan Tech', 'Alpha Center' ],
'Ellucian':[ 'Malvern', 'Ellucian House', 'Residency Road'] ]
Run Code Online (Sandbox Code Playgroud)
在这里,我需要按字母顺序对值进行排序
datamap = [ 'Antenna Software':[ 'Alpha Center', 'Cessna', 'Salarpuria', 'Vrindavan Tech' ],
'Ellucian':[ 'Ellucian House', 'Malvern', 'Residency Road' ] ]
Run Code Online (Sandbox Code Playgroud)
如何以时髦的方式做到这一点?
你应该能够做到:
def sortedMap = datamap.sort().collectEntries { k, v ->
[ k, v.sort( false ) ]
}
Run Code Online (Sandbox Code Playgroud)
如果你不打算排序地图的键,你可以摆脱最初的sort():
def sortedMap = datamap.collectEntries { k, v ->
[ k, v.sort( false ) ]
}
Run Code Online (Sandbox Code Playgroud)
sort( false ):默认情况下,sortGroovy中的方法更改原始列表,因此:
// Given a List
def a = [ 3, 1, 2 ]
// We can sort it
def b = a.sort()
// And the result is sorted
assert b == [ 1, 2, 3 ]
// BUT the original list has changed too!
assert a != [ 3, 1, 2 ] && a == [ 1, 2, 3 ]
Run Code Online (Sandbox Code Playgroud)
因此,如果您传递false给sort它,它将单独保留原始列表,并返回已排序的列表:
// Given a List
def a = [ 3, 1, 2 ]
// We can sort it (passing false)
def b = a.sort( false )
// And the result is sorted
assert b == [ 1, 2, 3 ]
// AND the original list has remained the same
assert a == [ 3, 1, 2 ]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1664 次 |
| 最近记录: |