通过arraylist搜索时的java句柄关联
在我的作业中,我必须制定一个房间预订计划。有一个选项可以计算房间数量,并显示座位最多的房间。我想做的是,如果有两个房间的座位最多,则显示多个房间(平局)。我现在正在打印座位最多的房间,我只是对如何实现这些联系感到困惑
班级要找最大的房间
public static void roomCount(ArrayList<Room> rooms) {
int largestRoom = 0;
int largestNumOfRooms = 0;
for (int i = 0; i < rooms.size(); i++) {
if (rooms.get(i).getNumberOfSeats() > largestNumOfRooms) {//Determine largest room
largestNumOfRooms = rooms.get(i).getNumberOfSeats();
largestRoom = rooms.get(i).getRoomNumber();
}
}
客房类
public class Room {
Scanner input = new Scanner(System.in);
private int roomNumber;
private int numberOfSeats;
private String reservedBy = "";
private boolean reserved;
private boolean hasSmartBoard;
/**
* Get the attribute values from the user.
*/
public Room(int roomNumber) {
this.roomNumber = roomNumber;
}
public void getRoomDetailsFromUser() {
System.out.print("Enter number of seats: ");
numberOfSeats = input.nextInt();
input.nextLine();
System.out.print("Does this classroom have a smart board? (Y/N)");
hasSmartBoard = input.nextLine().equalsIgnoreCase("y");
}
public boolean isHasSmartBoard() {
return hasSmartBoard;
}
public void setHasSmartBoard(boolean hasSmartBoard) {
this.hasSmartBoard = hasSmartBoard;
}
public int getNumberOfSeats() {
return numberOfSeats;
}
public void setNumberOfSeats(int numberOfSeats) {
this.numberOfSeats = numberOfSeats;
}
public String getReservedBy() {
return reservedBy;
}
public void setReservedBy(String reservedBy) {
this.reservedBy = reservedBy;
}
public boolean isReserved() {
return reserved;
}
public void setReserved(boolean reserved) {
this.reserved = reserved;
}
public int getRoomNumber() {
return roomNumber;
}
/**
* Update the room to reserved and get the reserved by.
*/
public void reserveThisRoom(){
this.reserved = true;
System.out.println("Enter the name of the person reserving this room: ");
reservedBy = input.nextLine();
}
/**
* Update the room to not reserved and clear the reserved by.
*/
public void releaseThisRoom(){
this.reserved = false;
reservedBy = "";
System.out.println("Room has been released\n");
}
public String toString() {
String output = "\n\n******************************"
+ "\nRoom Number: " + roomNumber
+ "\nNumber of Seats: " + numberOfSeats
+ "\nReserved By: " + reservedBy
+ "\nReserved: " + reserved
+ "\nSmart Board: "+ hasSmartBoard;
return output;
}
}
# 1 楼答案
你可以用
List
来代替在int
中存储最大的空间。所以你可以做以下几件事还需要从该方法返回值
# 2 楼答案
为房间号再做一次
ArrayList
。比如:现在,
largestRoom
有了您需要的房间号