import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;import com.google.common.collect.Maps;public class RandomUtils {private static Random random;//双重校验锁获取一个Random单例public static Random getRandom() {if(random==null){synchronized (RandomUtils.class) {if(random==null){random =new Random();}}}return random;}/*** 获得一个[0,max)之间的整数。* @param max* @return*/public static int getRandomInt(int max) {return Math.abs(getRandom().nextInt())%max;}/*** 获得一个[0,max)之间的整数。* @param max* @return*/public static long getRandomLong(long max) {return Math.abs(getRandom().nextInt())%max;}/*** 从list中随机取得一个元素* @param list* @return*/public static <E> E getRandomElement(List<E> list){return list.get(getRandomInt(list.size()));}/*** 从set中随机取得一个元素* @param set* @return*/public static <E> E getRandomElement(Set<E> set){int rn = getRandomInt(set.size());int i = 0;for (E e : set) {if(i==rn){return e;}i++;}return null;}/*** 从map中随机取得一个key* @param map* @return*/public static <K,V> K getRandomKeyFromMap(Map<K,V> map) {int rn = getRandomInt(map.size());int i = 0;for (K key : map.keySet()) {if(i==rn){return key;}i++;}return null;}/*** 从map中随机取得一个value* @param map* @return*/public static <K,V> V getRandomValueFromMap(Map<K,V> map) {int rn = getRandomInt(map.size());int i = 0;for (V value : map.values()) {if(i==rn){return value;}i++;}return null;}public static void main(String[] args) {Set<Integer> set = new HashSet<>();for (int i = 0; i < 12; i++) {set.add(i);}for (int i = 0; i < 10; i++) {System.out.println(getRandomElement(set));}}
}

转自 https://m.2cto.com/kf/201507/412937.html

转载于:https://www.cnblogs.com/winkey4986/p/7592094.html

随机获取一个集合(List, Set,Map)中的元素转相关推荐

  1. java map 随机取值_随机获取一个集合(List, Set)中的元素,随机获取一个Map中的key或value...

    利用Java提供的Random类.从List或Set中随机取出一个元素,从Map中随机获取一个key或value. 因为Set没有提供get(int index)方法,仅仅能先获取一个随机数后.利用一 ...

  2. java中获取一个集合(Set)的子集的方法

    想获取一个链表(List)的子集,可以直接使用subList方法,但是集合(Set)并没有类似的subSet的方法. 有些应用场景需要获取一个集合的子集,这时候该怎么做呢? 最容易想到的方式,就是构造 ...

  3. 在ASP.NET MVC应用程序中随机获取一个字符串

    在开发ASP.NET MVC应用程序时,有可能需要一个随机字符串,作为密码或是验证码等. 如果你需要的是SQL版本,可以参考<密码需要带特殊字符(二)>http://www.cnblogs ...

  4. Map 四种获取 key 和 value 值的方法,以及对 map 中的元素排序

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 获取map的值主要有四种方法,分为两类: 调用 map.keySet() 方法来获取 key ...

  5. Java 集合List及Map中forEach()方法

    我们先看一个forEach()方法遍历List集合的例子: //使用com.google.guava包创建集合List<String> list =Lists.newArrayList(& ...

  6. Map四种获取key和value值的方法,以及对map中的元素排序

    2019独角兽企业重金招聘Python工程师标准>>> 获取map的值主要有四种方法,这四种方法又分为两类: 一类是调用map.keySet()方法来获取key和value的值, 另 ...

  7. 在c++中使用for循环遍历map并删除map中的元素的注意事项

    2019独角兽企业重金招聘Python工程师标准>>> 最近在写代码的过程中,发现了一处删除map元素导致的异常.主要是因为不安全的使用for循环遍历map并删除元素导致的. 我一开 ...

  8. java list 随机获取n个_java – 从列表中取n个随机元素?

    两个主要方式. List list = createItSomehow(); Random random = new Random(); Foo foo = list.get(random.nextI ...

  9. python如何取map中的元素_在Python中使用map()获取列表元素在字符串中存在的次数...

    下面是对goalPost移动的一个响应("我可能需要regex,因为在不久的将来我将需要单词分隔符"): 此方法解析文本一次,以获得所有"单词"的列表.每个单词 ...

最新文章

  1. javaMP3转pcm 百度语音识别
  2. 黄聪:分享 SQL Server 2005 分区实现教程
  3. 上传图片-服务端-创建文件系统服务工程
  4. LFS、BLFS、ALFS、HLFS的区别详解
  5. 47session 方法
  6. install-info - 更新 info/dir 项
  7. [读书笔记]机器学习:实用案例解析(6)
  8. C# Iterators
  9. LVS三种工作模式、十种调度算法介绍
  10. 31个用来测试你网站各项性能的免费在线工具
  11. Mysql 默认约束 now_MYSQL中怎样设列的默认值为Now()的介绍
  12. 17. Store newed objects in smart pointers in standalone statements
  13. JAVA中在switch语句里使用枚举
  14. 因子分析模型 - 案例按步骤详解 - (SPSS建模)
  15. gps掩星计算matlab,《GPS测量与数据处理》_李征航_武汉大学出版社.pdf
  16. Unity实现键鼠控制立方体移动旋转
  17. iOS从零开始学习socket编程——高并发多线程服务器
  18. 【CTF】buuctf web 详解(持续更新)
  19. 289.南信大知网登录
  20. 初中学考英语听说计算机考试,2018中考英语听说计算机考试工作重要通知

热门文章

  1. mysql 游标中实现递归_mysql中实现递归查询?
  2. 从前端到“钱”端,优秀程序员要掌握哪些核心技术?
  3. DATEDIFF() 函数返回两个日期之间的天数
  4. 华为p20pro投屏到笔记本_新荣耀笔记本与微软系统合作,网友:一碰即传投屏功能还有吗...
  5. c语言红警源代码,真香!红警游戏源代码开源了,70,80,90最好的游戏
  6. php 自动处理小图的代码,php对图像的各种处理函数代码小结
  7. make clean
  8. 依赖注入例子php,依赖注入小例子
  9. oracle数据库等级,[数据库]Oracle数据库建表并用SQL编程分等级
  10. python实现whois查询_利用Python实现域名查询和whois查询