首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何遍历嵌套的TreeMaps?

如何遍历嵌套的TreeMaps?
EN

Stack Overflow用户
提问于 2011-03-27 02:25:38
回答 1查看 2.6K关注 0票数 1

我有一组3个嵌套的TreeMaps:

代码语言:javascript
复制
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中使用一种方法来仅显示与相关父对象相关的值。

这就是我所拥有的:

代码语言:javascript
复制
        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中的所有条目,直到最后。

有人能帮上忙吗?

EN

回答 1

Stack Overflow用户

发布于 2011-03-27 02:39:19

它不是很清楚(什么是listOfDays,listOfCourts和listOfTimes?),但我猜你需要这样的东西:

代码语言:javascript
复制
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条目,您可以遍历这个条目集。每个条目都有一个键和一个值。由于在您的示例中,该值是另一个映射,因此您可以对该值重复此操作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5444319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档