这篇文章主要介绍java如何实现的根据概率随机中奖测试类,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
具体如下:
最近要做一个宝箱抽奖的功能 自己先联系了一下,分别用 list和set 进行存储和抽取,做了一个时间消耗的对比,感觉list应该比set读取的要快些,但是这也不一定,希望大家能够共同讨论。
废话少说上代码:
package com.test.testRandom;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
import java.util.Set;
/** 根据概率获取奖品的测试类 */
public class TestRandom {
public static void main(String[] args) {
TestRandom tr = new TestRandom();
// 用List随机
long begin = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
tr.getGumByList();
}
System.out.println("list使用时间:" + (System.currentTimeMillis() - begin));
// 用set随机
long begin1 = System.currentTimeMillis();
for (int i = 0; i < 100; i++) {
tr.getGumBySet();
}
System.out.println("set使用时间:" + (System.currentTimeMillis() - begin1));
}
/* Set 获取 */
void getGumBySet() {
int random = new Random().nextInt(100);
int prizeRate = 0;// 中奖率
Iterator<Gem> it = initSetGems().iterator();
while (it.hasNext()) {
Gem gem = it.next();
prizeRate += gem.getPriority();
if (random < prizeRate) {
System.out.println("奖品为:" + gem.getName() + " 概率:"
+ gem.getPriority() + " 随机数random:" + random
+ " 概率基数prizeRate:" + prizeRate);
break;
}
}
}
/** List 获取 */
void getGumByList() {
int random = new Random().nextInt(100);
int prizeRate = 0;// 中奖率
Iterator<Gem> it = initGems().iterator();
while (it.hasNext()) {
Gem gem = it.next();
prizeRate += gem.getPriority();
if (random < prizeRate) {
System.out.println("奖品为:" + gem.getName() + " 概率:"
+ gem.getPriority() + " 随机数random:" + random
+ " 概率基数prizeRate:" + prizeRate);
break;
}
}
}
/** 初始化list */
List<Gem> initGems() {
List<Gem> gums = new ArrayList<Gem>();
gums.add(new Gem("20", 20));
gums.add(new Gem("7", 7));
gums.add(new Gem("30", 30));
gums.add(new Gem("24", 40));
gums.add(new Gem("3", 3));
return gums;
}
/** 初始化set */
Set<Gem> initSetGems() {
Set<Gem> gums = new HashSet<Gem>();
gums.add(new Gem("20", 20));
gums.add(new Gem("7", 7));
gums.add(new Gem("30", 30));
gums.add(new Gem("24", 40));
gums.add(new Gem("3", 3));
return gums;
}
/**奖品类*/
class Gem {
/** 奖品名称 */
private String name;
/** 奖品概率 */
private int priority;
public Gem() {
super();
}
public Gem(String name, int priority) {
super();
this.name = name;
this.priority = priority;
}
@Override
public String toString() {
return "Gum [name=" + name + ", priority=" + priority + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPriority() {
return priority;
}
public void setPriority(int priority) {
this.priority = priority;
}
}
}
运行结果:
奖品为:20 概率:20 随机数random:17 概率基数prizeRate:20
奖品为:30 概率:30 随机数random:54 概率基数prizeRate:57
奖品为:3 概率:3 随机数random:99 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:87 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:75 概率基数prizeRate:97
奖品为:7 概率:7 随机数random:21 概率基数prizeRate:27
奖品为:20 概率:20 随机数random:9 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:77 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:10 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:83 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:40 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:78 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:58 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:44 概率基数prizeRate:57
奖品为:7 概率:7 随机数random:26 概率基数prizeRate:27
奖品为:30 概率:30 随机数random:56 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:50 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:34 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:27 概率基数prizeRate:57
奖品为:20 概率:20 随机数random:4 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:87 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:0 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:96 概率基数prizeRate:97
奖品为:7 概率:7 随机数random:20 概率基数prizeRate:27
奖品为:30 概率:30 随机数random:44 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:50 概率基数prizeRate:57
奖品为:7 概率:7 随机数random:23 概率基数prizeRate:27
奖品为:24 概率:40 随机数random:87 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:93 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:35 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:79 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:41 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:42 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:66 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:50 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:43 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:88 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:41 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:74 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:96 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:90 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:96 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:2 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:68 概率基数prizeRate:97
奖品为:7 概率:7 随机数random:25 概率基数prizeRate:27
奖品为:20 概率:20 随机数random:13 概率基数prizeRate:20
奖品为:30 概率:30 随机数random:52 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:32 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:54 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:71 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:90 概率基数prizeRate:97
奖品为:3 概率:3 随机数random:97 概率基数prizeRate:100
奖品为:30 概率:30 随机数random:52 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:65 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:87 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:35 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:37 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:55 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:77 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:78 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:53 概率基数prizeRate:57
奖品为:20 概率:20 随机数random:4 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:10 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:69 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:34 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:68 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:28 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:96 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:66 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:0 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:66 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:95 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:77 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:10 概率基数prizeRate:20
奖品为:7 概率:7 随机数random:24 概率基数prizeRate:27
奖品为:30 概率:30 随机数random:31 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:68 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:54 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:47 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:66 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:78 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:39 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:55 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:50 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:54 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:33 概率基数prizeRate:57
奖品为:30 概率:30 随机数random:55 概率基数prizeRate:57
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:72 概率基数prizeRate:97
奖品为:3 概率:3 随机数random:98 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:67 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:82 概率基数prizeRate:97
奖品为:7 概率:7 随机数random:22 概率基数prizeRate:27
奖品为:24 概率:40 随机数random:66 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:7 概率基数prizeRate:20
奖品为:30 概率:30 随机数random:43 概率基数prizeRate:57
list使用时间:20
奖品为:7 概率:7 随机数random:2 概率基数prizeRate:7
奖品为:24 概率:40 随机数random:49 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:58 概率基数prizeRate:67
奖品为:20 概率:20 随机数random:51 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:68 概率基数prizeRate:80
奖品为:24 概率:40 随机数random:30 概率基数prizeRate:50
奖品为:24 概率:40 随机数random:25 概率基数prizeRate:60
奖品为:20 概率:20 随机数random:41 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:63 概率基数prizeRate:100
奖品为:30 概率:30 随机数random:15 概率基数prizeRate:37
奖品为:30 概率:30 随机数random:28 概率基数prizeRate:30
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:84 概率基数prizeRate:97
奖品为:3 概率:3 随机数random:0 概率基数prizeRate:3
奖品为:24 概率:40 随机数random:62 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:17 概率基数prizeRate:33
奖品为:20 概率:20 随机数random:9 概率基数prizeRate:23
奖品为:24 概率:40 随机数random:17 概率基数prizeRate:47
奖品为:20 概率:20 随机数random:79 概率基数prizeRate:90
奖品为:30 概率:30 随机数random:47 概率基数prizeRate:50
奖品为:24 概率:40 随机数random:96 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:37 概率基数prizeRate:50
奖品为:30 概率:30 随机数random:74 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:57 概率基数prizeRate:77
奖品为:24 概率:40 随机数random:43 概率基数prizeRate:47
奖品为:30 概率:30 随机数random:36 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:42 概率基数prizeRate:50
奖品为:20 概率:20 随机数random:22 概率基数prizeRate:23
奖品为:24 概率:40 随机数random:84 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:24 概率基数prizeRate:43
奖品为:24 概率:40 随机数random:72 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:12 概率基数prizeRate:40
奖品为:24 概率:40 随机数random:17 概率基数prizeRate:40
奖品为:30 概率:30 随机数random:22 概率基数prizeRate:50
奖品为:20 概率:20 随机数random:12 概率基数prizeRate:20
奖品为:30 概率:30 随机数random:60 概率基数prizeRate:73
奖品为:24 概率:40 随机数random:28 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:41 概率基数prizeRate:73
奖品为:24 概率:40 随机数random:36 概率基数prizeRate:47
奖品为:24 概率:40 随机数random:80 概率基数prizeRate:100
奖品为:30 概率:30 随机数random:36 概率基数prizeRate:37
奖品为:7 概率:7 随机数random:46 概率基数prizeRate:47
奖品为:24 概率:40 随机数random:77 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:79 概率基数prizeRate:100
奖品为:7 概率:7 随机数random:34 概率基数prizeRate:37
奖品为:24 概率:40 随机数random:39 概率基数prizeRate:40
奖品为:30 概率:30 随机数random:99 概率基数prizeRate:100
奖品为:20 概率:20 随机数random:43 概率基数prizeRate:60
奖品为:7 概率:7 随机数random:62 概率基数prizeRate:67
奖品为:24 概率:40 随机数random:42 概率基数prizeRate:73
奖品为:7 概率:7 随机数random:3 概率基数prizeRate:7
奖品为:24 概率:40 随机数random:86 概率基数prizeRate:97
奖品为:24 概率:40 随机数random:11 概率基数prizeRate:43
奖品为:24 概率:40 随机数random:58 概率基数prizeRate:90
奖品为:24 概率:40 随机数random:57 概率基数prizeRate:77
奖品为:30 概率:30 随机数random:52 概率基数prizeRate:70
奖品为:7 概率:7 随机数random:60 概率基数prizeRate:67
奖品为:24 概率:40 随机数random:85 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:84 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:84 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:70 概率基数prizeRate:73
奖品为:24 概率:40 随机数random:83 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:85 概率基数prizeRate:93
奖品为:30 概率:30 随机数random:75 概率基数prizeRate:90
奖品为:20 概率:20 随机数random:54 概率基数prizeRate:70
奖品为:30 概率:30 随机数random:51 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:38 概率基数prizeRate:40
奖品为:30 概率:30 随机数random:52 概率基数prizeRate:57
奖品为:20 概率:20 随机数random:12 概率基数prizeRate:23
奖品为:20 概率:20 随机数random:14 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:55 概率基数prizeRate:90
奖品为:20 概率:20 随机数random:45 概率基数prizeRate:50
奖品为:7 概率:7 随机数random:99 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:32 概率基数prizeRate:40
奖品为:30 概率:30 随机数random:25 概率基数prizeRate:50
奖品为:30 概率:30 随机数random:96 概率基数prizeRate:100
奖品为:20 概率:20 随机数random:8 概率基数prizeRate:20
奖品为:20 概率:20 随机数random:17 概率基数prizeRate:30
奖品为:20 概率:20 随机数random:56 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:3 概率基数prizeRate:40
奖品为:7 概率:7 随机数random:20 概率基数prizeRate:27
奖品为:20 概率:20 随机数random:3 概率基数prizeRate:20
奖品为:24 概率:40 随机数random:71 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:44 概率基数prizeRate:80
奖品为:24 概率:40 随机数random:72 概率基数prizeRate:93
奖品为:24 概率:40 随机数random:73 概率基数prizeRate:97
奖品为:20 概率:20 随机数random:47 概率基数prizeRate:50
奖品为:20 概率:20 随机数random:58 概率基数prizeRate:60
奖品为:24 概率:40 随机数random:35 概率基数prizeRate:70
奖品为:20 概率:20 随机数random:12 概率基数prizeRate:20
奖品为:30 概率:30 随机数random:19 概率基数prizeRate:30
奖品为:3 概率:3 随机数random:7 概率基数prizeRate:10
奖品为:24 概率:40 随机数random:33 概率基数prizeRate:60
奖品为:20 概率:20 随机数random:83 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:27 概率基数prizeRate:30
奖品为:3 概率:3 随机数random:99 概率基数prizeRate:100
奖品为:24 概率:40 随机数random:85 概率基数prizeRate:100
奖品为:20 概率:20 随机数random:89 概率基数prizeRate:97
奖品为:30 概率:30 随机数random:15 概率基数prizeRate:30
奖品为:24 概率:40 随机数random:41 概率基数prizeRate:70
set使用时间:14
以上是“java如何实现的根据概率随机中奖测试类”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。