使用Groovy脚本从键值对中获取随机值
获取Groovy Map中的随机值
以下是几种从你的Map中获取随机值的实用方法:
方法1:通过值列表+随机索引
先将Map的所有值转换为List,再利用随机数生成索引来获取元素:
def mp = [ 'QLD': 'Brisbane','NSW': 'Sydney','NT': 'Darwin'] def valueList = mp.values().toList() def randomValue = valueList[new Random().nextInt(valueList.size())] // 输出随机值 println randomValue
方法2:利用Groovy内置的shuffle方法
Groovy集合支持shuffle()方法打乱元素顺序,再取第一个元素即可:
def mp = [ 'QLD': 'Brisbane','NSW': 'Sydney','NT': 'Darwin'] def randomValue = mp.values().shuffle().first() println randomValue
或者用take(1)配合索引获取,效果一致:
def randomValue = mp.values().shuffle().take(1)[0]
方法3:先随机取键再取值
也可以先随机获取一个键,再通过键拿到对应的值:
def mp = [ 'QLD': 'Brisbane','NSW': 'Sydney','NT': 'Darwin'] def keyList = mp.keySet().toList() def randomKey = keyList[new Random().nextInt(keyList.size())] def randomValue = mp.get(randomKey) println randomValue
内容的提问来源于stack exchange,提问作者Kumar
相关产品推荐
相关产品推荐

