我有三個類是Guest,Class和Fileprocessing。我必須選擇適當的RoomType和價值最小的房間。例如Guest A [NOR,VIP]想預定房間類型爲NOR,如果我們不再房間類型NOR,他們會選擇VIP房間。爲什麼我的CheckTypeRoomForGuest()方法不循環所有客人並始終如此?
在教室:
public class Room {
private String roomName;
private String roomType;
private int roomNumSeat;
private int status;
}
類客戶:
public class Guest {
private String guestID;
private String guestName;
private double time;
private int guestNum;
private double bonus;
private ArrayList<String> guestServices= new ArrayList<String>();
private ArrayList<String> guestRoomType= new ArrayList<String>();
private Room room;
private Services services;
}
類Fileprocessing:
public class Fileprocessing {
List<Room> resultInit = new ArrayList<Room>();
//List<Services> resultInit1 = new ArrayList<Services>();
List<Guest> resultThue = new ArrayList<Guest>();
List<TenantInformation> resultttkt= new ArrayList<TenantInformation>();
public Fileprocessing(){}
public boolean CheckTypeRoomForGuest() {
for (Guest g: this.resultThue) {
for (Room r : this.resultInit) {
for (String s : g.getGuestRoomType()) {
if (s.equals(r.getRoomType())) {
return true;
}
}
}
}
return false;
}
public List<TenantInformation> roomforGuest() {
for (Guest g: this.resultThue){
int min = Integer.MAX_VALUE;
Room selectedRoom = null;
TenantInformation tt = new TenantInformation();
for (Room r: this.resultInit) {
if((g.getGuestNum()-k.getRoomSeat() < min)&& (CheckTypeRoomForGuest())&& (r.getRoomStatus==0)) {
min = Math.abs(g.getGuestNum() - r.getRoomSeat());
selectedRoom = r;
}
}
tt.setGuestName(g.getGuestName());
tt.setRoomName(selectedRoom.getRoomName());
r.setRoomStatus(Room.ROOM_OCCUPIED);
resultttkt.add(tt);
}
}
爲什麼我CheckTypeRoomForGuest()貪利不循環播放所有的客人,總是真正?
你在你的增強for循環中缺少某種變量 - 我會假設你打算在那裏放一個「g」。 – Makoto