Java编写基于概率的随机抽奖测试类如何实现?

2026-06-10 17:021阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5643个文字,预计阅读时间需要23分钟。

Java编写基于概率的随机抽奖测试类如何实现?

本文实例讲述了Java实现的数据概率随机抽取测试类。以下是一个简单的示例:

为了实现一个宝箱抽奖功能,我们首先需要创建一个类来管理抽奖过程。在这个类中,我们可以使用List和Set来存储奖品和抽取奖品。

javaimport java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Random;import java.util.Set;

public class Lottery { private List prizes; private Set drawnPrizes;

public Lottery() { this.prizes=new ArrayList(); this.drawnPrizes=new HashSet(); }

public void addPrize(String prize) { prizes.add(prize); }

public String drawPrize() { Random random=new Random(); int index=random.nextInt(prizes.size()); String prize=prizes.get(index);

if (!drawnPrizes.contains(prize)) { drawnPrizes.add(prize); return prize; } else { return 该奖品已被抽走,请重新抽取。; } }

public static void main(String[] args) { Lottery lottery=new Lottery(); lottery.addPrize(iPhone 12); lottery.addPrize(MacBook Pro); lottery.addPrize(Apple Watch); lottery.addPrize(AirPods Pro); lottery.addPrize(Apple TV);

for (int i=0; i <5; i++) { System.out.println(抽到的奖品: + lottery.drawPrize()); } }}

在这个示例中,我们首先创建了一个名为`Lottery`的类,它包含一个奖品列表`prizes`和一个已抽取奖品集合`drawnPrizes`。在`addPrize`方法中,我们可以向奖品列表中添加奖品。在`drawPrize`方法中,我们使用随机数生成器从奖品列表中随机抽取一个奖品,并确保该奖品未被抽取过。最后,在`main`方法中,我们创建了`Lottery`对象,添加了五个奖品,并进行了五次抽奖。

本文实例讲述了java实现的根据概率随机中奖测试类。分享给大家供大家参考,具体如下:

最近要做一个宝箱抽奖的功能 自己先联系了一下,分别用 list和set 进行存储和抽取,做了一个时间消耗的对比,感觉list应该比set读取的要快些,但是这也不一定,希望大家能够共同讨论。

废话少说上代码:

Java编写基于概率的随机抽奖测试类如何实现?

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

PS:这里再为大家提供几款功能类似的在线工具供大家参考:

在线随机数字/字符串生成工具:
tools.jb51.net/aideddesign/suijishu

在线随机字符/随机密码生成工具:
tools.jb51.net/aideddesign/rnd_password

高强度密码生成器:
tools.jb51.net/password/CreateStrongPassword

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

本文共计5643个文字,预计阅读时间需要23分钟。

Java编写基于概率的随机抽奖测试类如何实现?

本文实例讲述了Java实现的数据概率随机抽取测试类。以下是一个简单的示例:

为了实现一个宝箱抽奖功能,我们首先需要创建一个类来管理抽奖过程。在这个类中,我们可以使用List和Set来存储奖品和抽取奖品。

javaimport java.util.ArrayList;import java.util.HashSet;import java.util.List;import java.util.Random;import java.util.Set;

public class Lottery { private List prizes; private Set drawnPrizes;

public Lottery() { this.prizes=new ArrayList(); this.drawnPrizes=new HashSet(); }

public void addPrize(String prize) { prizes.add(prize); }

public String drawPrize() { Random random=new Random(); int index=random.nextInt(prizes.size()); String prize=prizes.get(index);

if (!drawnPrizes.contains(prize)) { drawnPrizes.add(prize); return prize; } else { return 该奖品已被抽走,请重新抽取。; } }

public static void main(String[] args) { Lottery lottery=new Lottery(); lottery.addPrize(iPhone 12); lottery.addPrize(MacBook Pro); lottery.addPrize(Apple Watch); lottery.addPrize(AirPods Pro); lottery.addPrize(Apple TV);

for (int i=0; i <5; i++) { System.out.println(抽到的奖品: + lottery.drawPrize()); } }}

在这个示例中,我们首先创建了一个名为`Lottery`的类,它包含一个奖品列表`prizes`和一个已抽取奖品集合`drawnPrizes`。在`addPrize`方法中,我们可以向奖品列表中添加奖品。在`drawPrize`方法中,我们使用随机数生成器从奖品列表中随机抽取一个奖品,并确保该奖品未被抽取过。最后,在`main`方法中,我们创建了`Lottery`对象,添加了五个奖品,并进行了五次抽奖。

本文实例讲述了java实现的根据概率随机中奖测试类。分享给大家供大家参考,具体如下:

最近要做一个宝箱抽奖的功能 自己先联系了一下,分别用 list和set 进行存储和抽取,做了一个时间消耗的对比,感觉list应该比set读取的要快些,但是这也不一定,希望大家能够共同讨论。

废话少说上代码:

Java编写基于概率的随机抽奖测试类如何实现?

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

PS:这里再为大家提供几款功能类似的在线工具供大家参考:

在线随机数字/字符串生成工具:
tools.jb51.net/aideddesign/suijishu

在线随机字符/随机密码生成工具:
tools.jb51.net/aideddesign/rnd_password

高强度密码生成器:
tools.jb51.net/password/CreateStrongPassword

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java字符与字符串操作技巧总结》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。