网站首页 > java教程 正文
之前做项目的时候遇到过随机抽取不同元素的问题,比如说从题库中随机抽取不同的题目,从专家中随机抽取几位作为评委等。当时,临时写了一些代码,分享给大家。虽然可能不是最佳方案,但是,至少是可以正常运行的。先看一下效果:
具体思路:首先是待抽取的数据,本例是使用最常见的list和array作为数据来源,当然,默认其中的元素各不相同。我们要从中抽取若干不同的元素,只需要从其中抽取若干不同的下标就行了。
针对这种问题,首先想到了java中的random,当然,包括Math.random()和Random类,二者用法大同小异,本例使用的是Math.random()。
使用Math.random()可以获取指定下标范围的随机数,那么怎么保证数据不重复呢,可选方案有很多,比如Set、Map等,本例使用Map来实现。具体原理为Map的key是唯一的,我们可以利用这个来存放抽取的不同的下标,同时进行计数,当然,使用Set的原理是一样的,Set中不能存放相同的元素。
示例代码:
执行程序的运行结果如下:
可以看到与本文开头的执行结果不同,实现了随机的效果。当然,本例具体的执行效率如何,在此不做深究,更加专业和讲求效率的做法估计是从算法和设计模式的角度入手了。本例对于一些简单的需求还是可以满足的,至于大数据的情况留待以后研究吧。
猜你喜欢
- 2024-10-25 我的世界:程序员眼里的MC,和我们有什么不一样?看完才知道差距
- 2024-10-25 Java唯一ID生成策略(java 生成id)
- 2024-10-25 Hive 自定UDF函数,生成 32 位随机数
- 2024-10-25 Java程序员必备:高薪工作全靠它(java程序员需要学什么)
- 2024-10-25 从编程的角度看,我的世界是一种怎样的存在?聊聊你不知道的MC
- 2024-10-25 Java Random可破解,随机数不再随机,更不安全
- 2024-10-25 JAVA入门:零基础实现幸运抽奖功能
- 2024-10-25 伪随机数生成器(伪随机数生成器 labview)
- 2024-10-25 通过冒泡排序测试Java和PHP性能(冒泡排序选择排序java)
- 2024-10-25 Java 如何从一个 List 中随机获得元素
你 发表评论:
欢迎- 最近发表
-
- Java内存溢出紧急处理:10个必知的Linux命令快速定位OOM
- 面试常问的 25+ 个 Linux 命令(linux面试命令大全)
- Java堆外内存溢出紧急处理实战:Linux命令定位与Spring Boot解决
- java开发常用的Linux命令,高频的没你想象的多
- Java 应用 CPU 飙升?8 个 Linux 命令组合拳快速锁定异常线程
- Java 开发者线上问题排查常用的 15 个 Linux 命令
- Java程序员必备的Linux命令:让你的工作效率翻倍
- Java程序员必备的Linux命令全解析
- [超全整理] Java 程序员必备的 100 条 Linux 命令大全
- SAP ABAP资源导航(sap aatp)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)