2. 实现一个抽奖程序,将若干奖项放入一个ArrayList中,作为一个抽奖池。 创建若干个抽奖线程代表每个参加抽奖的人,随机从抽奖池中获取奖项并打印 某某人抽中 10 元大奖 莫某人谢谢您,下次再来
时间: 2024-05-03 18:18:00 浏览: 83
以下是Java代码实现:
```java
import java.util.ArrayList;
import java.util.Random;
public class LotteryProgram {
public static void main(String[] args) {
ArrayList<String> prizePool = new ArrayList<>();
prizePool.add("10元大奖");
prizePool.add("5元小奖");
prizePool.add("谢谢参与");
for (int i = 1; i <= 10; i++) {
Thread thread = new LotteryThread("某某人" + i, prizePool);
thread.start();
}
}
}
class LotteryThread extends Thread {
private String name;
private ArrayList<String> prizePool;
public LotteryThread(String name, ArrayList<String> prizePool) {
this.name = name;
this.prizePool = prizePool;
}
public void run() {
Random random = new Random();
int index = random.nextInt(prizePool.size());
String prize = prizePool.get(index);
System.out.println(name + "抽中" + prize);
prizePool.remove(index);
}
}
```
首先创建了一个奖品池ArrayList,其中包含了三种奖项。然后创建了10个抽奖线程,每个线程代表一个人参加抽奖。在线程的run方法中,使用Random类随机从奖品池中获取一个奖项,并打印出该人抽中的奖项。最后从奖品池中移除该奖项,保证每个奖项只能被抽中一次。
阅读全文