Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I agree it is really super mega bad. But if you want to implement this functionality, I recommend HashMaps instead. Here is a class that implements the functionality you want: </p> <pre><code>public class Reservations { static final int DAY_SUN = 0, DAY_MON = 1, DAY_TUE = 2, DAY_WED = 3, DAY_THU = 4, DAY_FRI = 5, DAY_SAT = 6; static final int ROOM_1 = 0, ROOM_2 = 1, ROOM_3 = 2, ROOM_4 = 3, ROOM_5 = 4; private static HashMap&lt;Integer[], String[]&gt; hMap = new HashMap&lt;Integer[], String[]&gt;(); static String [] getStringForValue(Integer[] i){ return hMap.get(i); } static TreeSet&lt;String&gt; getOrderedOutputStrings(){ TreeSet&lt;String&gt; set = new TreeSet&lt;String&gt;(); for(Entry&lt;Integer[],String[]&gt; e : hMap.entrySet()){ int day_int = Reservations.getDay(e.getKey()); int room_int = Reservations.getRoom(e.getKey()); int time = Reservations.getTime(e.getValue()); String name = Reservations.getGuestName(e.getValue()); String day = Reservations.dayToString(day_int); String room = Reservations.roomToString(room_int); if(time &gt; 0) set.add("DAY: " + "(" + day_int + ")" + day + " (" + room_int + ")"+ "ROOM: " + room + " :: " + name + " @ " + time); } return set; } static void setupMap() { for (int day = 0; day &lt; 7; day++) { for (int room = 0; room &lt; 5; room++) { addGuest(day, room, (int)(Math.random()*1000), "Bob TestCase"); } } } static void addGuest(int day, int room, int time, String name) { Integer[] ref = new Integer[2]; ref[0] = day; ref[1] = room; String[] s = new String[2]; s[0] = Integer.toString(time); s[1] = name; hMap.put(ref, s); } static String[] lookupRoom(int day, int room) { Integer[] i = new Integer[2]; i[0] = day; i[1] = room; return hMap.get(i); } static int getDay(Integer[] i){ return i[0]; } static int getRoom(Integer[] i ){ return i[1]; } static int getTime(String[] s) { return Integer.parseInt(s[0]); } public static String getGuestName(String[] s) { return s[1]; } public static String dayToString(int i){ switch(i){ case 0: return "SUNDAY"; case 1: return "MONDAY"; case 2: return "TUESDAY"; case 3: return "WEDNESDAY"; case 4: return "THURSDAY"; case 5: return "FRIDAY"; case 6: return "SATURDAY"; default: return null; } } public static String roomToString(int i){ switch(i){ case 0: return "ROOM ONE"; case 1: return "ROOM TWO"; case 2: return "ROOM THREE"; case 3: return "ROOM FOUR"; case 4: return "ROOM FIVE"; default: return null; } } </code></pre> <p>}</p> <p>Here is a main that runs the Reservations class:</p> <pre><code>public class Main { /** * @param args the command line arguments */ public static void main(String[] args) { Reservations.setupMap(); //Run to test TODO: remove setupMap() from Reservation class Reservations.addGuest(Reservations.DAY_MON, Reservations.ROOM_2, 1230, "John Doe"); TreeSet&lt;String&gt; set = new TreeSet&lt;String&gt;(); for(String s: Reservations.getOrderedOutputStrings()){ System.out.println(s + "\n"); } } } </code></pre> <p>And finally, using SetupMap and the single entry, it produces:</p> <pre><code>DAY: (0)SUNDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 423 DAY: (0)SUNDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 637 DAY: (0)SUNDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 731 DAY: (0)SUNDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 424 DAY: (0)SUNDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 427 DAY: (1)MONDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 335 DAY: (1)MONDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 580 DAY: (1)MONDAY (1)ROOM: ROOM TWO :: John Doe @ 1230 DAY: (1)MONDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 700 DAY: (1)MONDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 556 DAY: (1)MONDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 92 DAY: (2)TUESDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 84 DAY: (2)TUESDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 964 DAY: (2)TUESDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 981 DAY: (2)TUESDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 294 DAY: (2)TUESDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 22 DAY: (3)WEDNESDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 216 DAY: (3)WEDNESDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 838 DAY: (3)WEDNESDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 198 DAY: (3)WEDNESDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 494 DAY: (3)WEDNESDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 796 DAY: (4)THURSDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 617 DAY: (4)THURSDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 866 DAY: (4)THURSDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 799 DAY: (4)THURSDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 242 DAY: (4)THURSDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 178 DAY: (5)FRIDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 491 DAY: (5)FRIDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 16 DAY: (5)FRIDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 838 DAY: (5)FRIDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 63 DAY: (5)FRIDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 860 DAY: (6)SATURDAY (0)ROOM: ROOM ONE :: Bob TestCase @ 73 DAY: (6)SATURDAY (1)ROOM: ROOM TWO :: Bob TestCase @ 759 DAY: (6)SATURDAY (2)ROOM: ROOM THREE :: Bob TestCase @ 15 DAY: (6)SATURDAY (3)ROOM: ROOM FOUR :: Bob TestCase @ 115 DAY: (6)SATURDAY (4)ROOM: ROOM FIVE :: Bob TestCase @ 21 </code></pre> <p>That result was generated in less than a single second. I promise that is infinitely more efficient than nested TreeMaps. Good Luck!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload