用java写个拼团的代码
时间: 2023-06-06 13:08:26 浏览: 60
好的,我可以帮你回答关于编程的问题。以下是一个简单的Java拼团实现参考代码:
```
import java.util.ArrayList;
public class GroupBuy {
private int targetBuyers; // 目标拼团人数
private ArrayList<String> buyers; // 参与拼团的用户列表
public GroupBuy(int n) {
targetBuyers = n;
buyers = new ArrayList<String>();
}
public boolean join(String user) {
synchronized (buyers) {
if (buyers.size() < targetBuyers) {
buyers.add(user);
return true;
} else {
return false;
}
}
}
public ArrayList<String> getBuyers() {
return buyers;
}
public boolean isComplete() {
return buyers.size() == targetBuyers;
}
public static void main(String[] args) {
GroupBuy gb = new GroupBuy(3);
Thread t1 = new Thread(new Runnable() {
public void run() {
if (gb.join("Alice")) {
System.out.println("Alice joins the group buy.");
if (gb.isComplete()) {
System.out.println("Group buy is complete.");
}
} else {
System.out.println("Alice cannot join the group buy.");
}
}
});
Thread t2 = new Thread(new Runnable() {
public void run() {
if (gb.join("Bob")) {
System.out.println("Bob joins the group buy.");
if (gb.isComplete()) {
System.out.println("Group buy is complete.");
}
} else {
System.out.println("Bob cannot join the group buy.");
}
}
});
Thread t3 = new Thread(new Runnable() {
public void run() {
if (gb.join("Charlie")) {
System.out.println("Charlie joins the group buy.");
if (gb.isComplete()) {
System.out.println("Group buy is complete.");
}
} else {
System.out.println("Charlie cannot join the group buy.");
}
}
});
t1.start();
t2.start();
t3.start();
}
}
```
这个简单实现中,`GroupBuy` 类表示一个拼团,可以指定拼团的目标人数,在 `join` 方法中尝试加入一个用户,如果拼团已满则返回 `false`,否则返回 `true`。加入用户时使用 `synchronized` 锁定 `buyers` 列表,以保证线程安全。`getBuyers` 方法返回当前已加入的所有用户,`isComplete` 方法返回拼团是否已达到目标人数。在 `main` 方法中创建了三个线程,分别尝试加入拼团,当拼团达到目标人数时输出提示信息。该示例仅作参考,请根据实际需求进行修改。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)