我有一組3個嵌套的樹狀圖:如何迭代嵌套TreeMaps?
TreeMap<DayOfWeek, TreeMap<Court, TreeMap<Time, String>>> keyDay = new TreeMap<DayOfWeek, TreeMap<Court, TreeMap<Time, String>>>();
TreeMap<Court, TreeMap<Time, String>> keyCourt = new TreeMap<Court, TreeMap<Time, String>>();
TreeMap<Time, String> keyTime = new TreeMap<Time, String>();
其中存儲預訂信息。我試圖通過使用嵌套while循環遍歷它們來顯示所有已創建的預訂,但是我需要一種嵌套whiles的方式來顯示與相關父級相關的值。
這是我有:
Iterator listOfDays = keyDay.keySet().iterator();
Iterator listOfCourts = keyCourt.keySet().iterator();
Iterator listOfTimes = keyTime.keySet().iterator();
String output;
while (listOfDays.hasNext()) {
DayOfWeek currentDay = (DayOfWeek) (listOfDays.next());
output += currentDay.toString() + "\n----------\n";
while (listOfCourts.hasNext()){
Court currentCourt = (Court) (listOfCourts.next());
output += currentCourt.toString() + ":\n";
while (listOfTimes.hasNext()){
Time currentTime = (Time) (listOfTimes.next());
String currentName = (String) keyTime.get(currentTime);
output += currentTime.toString() + " - " + currentName + "\n";
}
}
...但預期(但不想要的),它只是通過每個TreeMap中直到結束所有條目進行迭代。
任何人都可以幫忙嗎?
這裏有什麼令人困惑的是,你說的是嵌套樹,事實上keyDay是嵌套的,但是你不會觸摸嵌套樹,而是通過無關樹。 – Ingo 2011-03-26 18:33:52
嗯,我不確定你的意思,但讓我給你一個例子,說明我如何在樹上構建'記錄':[day,[court#,[time,name]]]。 – melat0nin 2011-03-26 18:38:19
如果可以,請使用鍵入的集合。您將節省大量擊鍵次數並提高代碼的類型安全性。 – 2011-03-26 18:38:25