网吧分配座位代码java使用集合判断
时间: 2023-09-12 17:05:22 浏览: 48
好的,那我可以为您提供使用Java集合实现网吧座位分配的代码,具体思路如下:
1. 首先需要确定座位数量和排列方式。可以将座位以矩阵的形式排列,每个座位对应一个坐标。
2. 创建一个座位分配的方法,它可以接受一个参数,该参数是一个集合,包含已经被占用的座位坐标。
3. 使用Java的ArrayList集合保存所有可用座位的坐标,遍历所有座位坐标并将未被占用的座位坐标添加到ArrayList中。
4. 判断ArrayList是否为空,如果为空则返回一个提示信息。
5. 如果ArrayList不为空,则使用Random类生成一个随机数作为座位的索引,获取该索引对应的座位坐标并返回。
下面是Java实现的代码示例:
```java
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;
public class SeatAssigner {
private final int ROW_COUNT = 10;
private final int COLUMN_COUNT = 10;
private final Set<String> occupiedSeats = new HashSet<>(); // 已被占用的座位
public SeatAssigner() {
// 初始化已被占用的座位
occupiedSeats.add("2,3");
occupiedSeats.add("4,5");
occupiedSeats.add("7,8");
}
public String assignSeat(Set<String> occupiedSeats) {
ArrayList<String> availableSeats = new ArrayList<>();
for (int i = 1; i <= ROW_COUNT; i++) {
for (int j = 1; j <= COLUMN_COUNT; j++) {
String seat = i + "," + j;
if (!occupiedSeats.contains(seat)) {
availableSeats.add(seat);
}
}
}
if (availableSeats.isEmpty()) {
return "所有座位都已被占用!";
}
int index = new Random().nextInt(availableSeats.size());
return availableSeats.get(index);
}
public static void main(String[] args) {
SeatAssigner seatAssigner = new SeatAssigner();
String seat = seatAssigner.assignSeat(seatAssigner.occupiedSeats);
System.out.println("分配到的座位为:" + seat);
}
}
```
希望这份代码能够对您有所帮助!