Groovy是非常强大的管理集合。我有一个像这样的列表:
def nameList = ["Jon", "Mike", "Alexia"]
我要做的是迭代10次以从第一个列表中获得具有随机名称的10个人。
10.times{
Person person = new Person(
name: nameList.get() //I WANT TO GET A RANDOM NAME FROM THE LIST
)
}
这不是出于两个显而易见的原因,我没有在我的nameList.get中添加任何索引,而且我没有创建10个不同的Person对象。
只需使用Java方法Collections.shuffle()
就好
class Person {
def name
}
def nameList = ["Jon", "Mike", "Alexia"]
10.times {
Collections.shuffle nameList
Person person = new Person(
name: nameList.first()
)
println person.name
}
或使用随机索引
class Person {
def name
}
def nameList = ["Jon", "Mike", "Alexia"]
def nameListSize = nameList.size()
def r = new Random()
10.times {
Person person = new Person(
name: nameList.get(r.nextInt(nameListSize))
)
println person.name
}