4、叫号系统
public class Championship {
private static final int NUM_COMPETITIONS = 9;
private static final int NUM_FINAL_ROOMS = 9;
private static final long ENTRY_INTERVAL = 500; // 进入时间间隔,单位毫秒
private final List<String> competitionCategories;
private final List<String> teamList;
private final List[] finalRooms;
public void start() {
for (int i = 0; i < NUM_COMPETITIONS; i++) {
finalRooms[i % NUM_FINAL_ROOMS].addAll(getTeamsWithCategory(competitionCategories.get(i)));
}
for (int i = 0; i < NUM_FINAL_ROOMS; i++) {
System.out.println("Final room " + i + ":");
for (Object team : finalRooms[i]) {
try {
System.out.println("Please enter the competition arena: " + team);
Thread.sleep(ENTRY_INTERVAL);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
}
5、校园导游系统
public void navigate(String start, String end) {
// 导航功能
Building startBuilding = getBuilding(start);
Building endBuilding = getBuilding(end);
Map<Building, Building> previous = new HashMap<>();
Map<Building, Integer> distances = new HashMap<>();
Set<Building> visited = new HashSet<>();
PriorityQueue<Building> queue = new PriorityQueue<>(Comparator.comparingInt(distances::get));
distances.put(startBuilding, 0);
queue.offer(startBuilding);
while (!queue.isEmpty()) {
Building current = queue.poll();
if (current.equals(endBuilding)) {
List<Building> path = new ArrayList<>();
path.add(current);
while (previous.containsKey(current)) {
current = previous.get(current);
path.add(0, current);
}
System.out.println("Distance: " + distances.get(endBuilding));
printPath(path);
return;
}
if (visited.contains(current)) {
continue;
}
visited.add(current);
List<Connection> currentConnections = getConnections(current.getId());
for (Connection connection : currentConnections) {
Building neighbor = connection.getOtherBuilding(current);
int distanceFromStart = distances.get(current) + connection.getDistance();
if (distances.containsKey(neighbor) && distances.get(neighbor) <= distanceFromStart) {
continue;
}
previous.put(neighbor, current);
distances.put(neighbor, distanceFromStart);
queue.offer(neighbor);
}
}
System.out.println("No path found");
}