加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy方法从列表中获取随机元素

发布时间:2020-12-14 16:26:03 所属栏目:大数据 来源:网络整理
导读:Groovy是非常强大的管理集合.我有一个像这样的列表: def nameList = ["Jon","Mike","Alexia"] 我要做的是迭代10次以从第一个列表中获得具有随机名称的10个人. 10.times{ Person person = new Person( name: nameList.get() //I WANT TO GET A RANDOM NAME F
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对象.

>如何使用groovy从名单中获取随机元素?
>我可以使用groovy的集合属性创建一个包含10个随机名称的人的列表(以简单的方式)吗?

解决方法

只需使用Java方法Collections.shuffle()就好

class Person {
    def name
}

def nameList = ["Jon","Alexia"]
10.times {
    Collections.shuffle nameList
    Person person = new Person(
        name: nameList.first()
    )
    println person.name
}

或使用随机索引

class Person {
    def name
}

def nameList = ["Jon","Alexia"]
def nameListSize = nameList.size()
def r = new Random()
10.times {
    Person person = new Person(
        name: nameList.get(r.nextInt(nameListSize))
    )
    println person.name
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读