Java使用HashMap映射实现消费抽奖功能
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java使⽤HashMap映射实现消费抽奖功能
本⽂实例为⼤家分享了Java实现消费抽奖功能的具体代码,供⼤家参考,具体内容如下
要求如下:
1、定义奖项类Awards,包含成员变量String类型的name(奖项名称)和int类型的count(奖项数量)。
2、定义抽奖类DrawReward,包含成员变量Map<Integer, Awards> 类型的rwdPool(奖池对象)。
该类实现功能如下:a) 构造⽅法中对奖池对象初始化,本实验要求提供不少于4类奖品,每类奖品数量为有限个,每类奖品对应唯⼀的键值索引(抽奖号)。
b) 实现抽奖⽅法draward,由抽奖号在奖池中抽奖,并根据当前奖池的情况作出对应的逻辑处理;c) 利⽤迭代器Iterator 实现显⽰奖池奖项情况的⽅法showPool。
3、编写测试类,实现下图效果:
实现代码:
import java.util.Random;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
class Awards {
private String name;
private int count;
public Awards() {
}
public Awards(String name, int count) {
= name;
this.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
class DrawReward {
private Map<Integer,Awards> rwdPool=null;
public DrawReward(){
this.rwdPool=new HashMap<Integer,Awards>();
rwdPool.put(0,new Awards("阳光普照奖:家庭⼤礼包",100));
rwdPool.put(1,new Awards("⼀等奖:华为Mate X",4));
rwdPool.put(2,new Awards("⼆等奖:格⼒吸尘器",6));
rwdPool.put(3,new Awards("特等奖:¥5000",1));
}
public boolean hasAward(int rdkey){
Awards awards = this.rwdPool.get(rdkey);
if(awards.getCount()==0) return false;
else return true;
}
public void draward(int rdKey) {
Awards aw = this.rwdPool.get(rdKey);
System.out.println("抽奖结果:"+aw.getName());
aw.setCount(aw.getCount()-1);
}
public void showPool(){
Iterator<Awards> it;
it = rwdPool.values().iterator();
while(it.hasNext()){
Awards aw = it.next();
System.out.println(aw.getName()+";剩余奖项数量:"+aw.getCount());
}
}
}
public class MainClass {
public static void main(String[] args) {
DrawReward draw = new DrawReward();
for(int i=0;i<10;i++){
Random rd = new Random();
int rdKey = rd.nextInt(4);
if(draw.hasAward(rdKey)) {
draw.draward(rdKey);
} else {
i--;
}
}
draw.showPool();
}
}
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。