我有一组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循环遍历它们,以显示已创建的所有预订,但我需要在嵌套的while中使用一种方法来仅显示与相关父对象相关的值。
这就是我所拥有的:
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";
}
}正如预期的(但不是想要的) ...but,它只是遍历每个TreeMap中的所有条目,直到最后。
有人能帮上忙吗?
发布于 2011-03-27 02:39:19
它不是很清楚(什么是listOfDays,listOfCourts和listOfTimes?),但我猜你需要这样的东西:
for (Map.Entry<DayOfWeek, TreeMap<Court, TreeMap<Time, String>>> dayEntry : keyDay.entrySet()) {
DayOfWeek currentDay = dayEntry.getKey();
output += currentDay.toString() + "\n----------\n";
for (Map.Entry<Court, TreeMap<Time, String>> courtEntry : dayEntry.getValue().entrySet()) {
Court currentCourt = courtEntry.getKey();
output += currentCourt.toString() + ":\n";
for (Map.Entry<Time, String> timeEntry : currentCourt.getValue().entrySet()) {
Time currentTime = timeEntry.getKey();
String currentName = timeEntry.getValue();
output += currentTime.toString() + " - " + currentName + "\n";
}
}
}简而言之,一个map可以看作是一组map条目,您可以遍历这个条目集。每个条目都有一个键和一个值。由于在您的示例中,该值是另一个映射,因此您可以对该值重复此操作。
https://stackoverflow.com/questions/5444319
复制相似问题