我是groovy的新手,并且有点挣扎于从地图中获取所有姓氏的逻辑,其中包含用户列表,即名字和姓氏。
以下是我想回答的问题:
“我们有一个User和User类列表,其中包含姓名,姓氏属性。这是获取所有姓氏列表的最短代码?”
class Users {
String fName
String lName
String toString() {
return fName + " " + lName
}
static main(args){
Users user = new Users()
def keys = []
def map = [[firstname:'michael',lastname:"turner",department:"finanace"],
[firstname:'james',lastname:"spencer",department:"finanace"]]
map.find{it.key == map[name]}.each{
println keys += it.value
}
def counter = 1
keys.each {
println "Surname $counter - " it
counter++
}
}
i.e. :
user.setFName(pass fName from loop to Users class)
user.setLName(pass lName from loop to Users class)
}
姓1 - 斯宾塞
姓2 - 特纳
答案 0 :(得分:0)
那将是map.lastname
,如:
assert map.lastname == ['turner', 'spencer']
是的,要获得你现在想要的输出:
map.lastname.eachWithIndex { name, idx ->
println "surname ${idx + 1} - $name"
}
或者:
map.eachWithIndex { submap, idx ->
println "surname ${idx + 1} - $submap.lastname"
}
答案 1 :(得分:0)
您有地图列表。我们可以将该地图列表转换为姓氏列表并将其打印出来:
print map.collect { it.lastname }