0

私はgroovyを初めて使用し、ユーザーのリスト、つまり名と姓を含むマップからすべての名前を取得するロジックに少し苦労していました。

以下は答えようとしている質問です:

「Userのリストがあり、Userクラスにはname、surnameプロパティがあります。すべてのsurnameのリストを取得するための最短のコードはどれですか?」

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-ターナー

4

2 に答える 2

0

マップのリストがあります。そのマップのリストを名前のリストに変換して、次のように出力できます。

print map.collect { it.lastname }
于 2013-01-22T08:21:47.640 に答える
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"
}
于 2013-01-21T18:31:37.253 に答える