Unable to insert values correctly into the hash table
During the programming process, we encountered an issue with data structures. We planned to approach it using a four-dimensional space analogy based on a real-life hotel example. Our intention was to use a hash table to store time intervals. However, we discovered that this approach was not effective. Storing time intervals in the hash table had the possibility of being overwritten by updated time intervals. As a result, there could be variations in the outcomes when running the program on different compilers or hosts.
Created attachment 151 [details] Location: CmdCheckin.java Please follow the aforementioned path to find the problem
The bug has been fixed, we kept the data structure in hash map, but we store the time point rather than period, the program will be normally run
Test Code: For initializing: addRoom|101|Queen addRoom|102|Deluxe addRoom|103|Double addRoom|104|Queen addRoom|105|Deluxe addRoom|106|Double addRoom|107|Queen addRoom|108|Deluxe addRoom|109|Double addRoom|110|Queen addRoom|111|Deluxe addRoom|112|Double *The Room Addition will firstly set the 'Dirty' and 'Harmed' status for all room Check Rooms' Status: listRooms|2023-12-13 The output is: Room Number: 101 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 102 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 103 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 104 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 105 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 106 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 107 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 108 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 109 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 110 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 111 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 112 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed If we run the 'cleanResponse' (purpose:set rooms' status to 'Clean') Expected Output: Actual Output: Room Number: 101 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 102 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Clean | Device Status: Harmed Room Number: 103 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 104 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 105 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 106 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 107 | Room Type: Queen | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 108 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Clean | Device Status: Harmed Room Number: 109 | Room Type: Double | Room Status: Available | Hygiene Status: Clean | Device Status: Harmed Room Number: 110 | Room Type: Queen | Room Status: Available | Hygiene Status: Clean | Device Status: Harmed Room Number: 111 | Room Type: Deluxe | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed Room Number: 112 | Room Type: Double | Room Status: Available | Hygiene Status: Dirty | Device Status: Harmed It should be noticed that some rooms' status are not been set to Clean though we execute the cleanResponses. Also, when we execute in different machine\software, the output may also be different.