当前位置: 首页 > 面试题库 >

如何遍历

盛琪
2023-03-14
问题内容

我有一个Map如下所示的bean:

public class TaskListData {
    private Map<String, String[]> srcMasks = new HashMap<String, String[]>();
    private Map<Integer, Map<String, String[]>> ftqSet = new HashMap<Integer, Map<String, String[]>>();

    public void setFTQSet(Integer ftqid, String[] src, String[] masks) {  
        srcMasks.put("srcDir", src);
        srcMasks.put("masks", masks);
        ftqSet.put(ftqid, srcMasks);
    }

这ftqSet适合以下数据结构:

feedId = "5",
feedName = "myFeedName",
ftqSet => {
            1 => {
                    srcDirs = ["/path/string"],
                    masks = ["p.txt", "q.csv"]
                 }
            2 => { ...
                 }
          }, ...

在我的测试JSP文件中,我一直在尝试使用来访问数据

<c:forEach items="#{bean.ftqSet}" var="f">
    this text does not print
    ${f.feedId}
</c:forEach>

但是它没有输出${f.feedId}。为什么会这样呢?我将如何访问该结构的各个元素,以便创建一个漂亮的表?


问题答案:

的每次迭代Mapc:forEach给出了一个Map.Entry实例,它反过来又getKey()和getValue()方法。这与for (Entry entry : map.entrySet())在普通Java中进行操作类似。

例如

<c:forEach items="#{bean.map}" var="entry">
    <h:outputText value="Key: #{entry.key}, Value: #{entry.value}" /><br />
</c:forEach>

在的情况下Map<Integer, Map<String, String[]>>#{entry.value}回报Map<String, String[]>,所以你需要遍历它还有:

<c:forEach items="#{bean.map}" var="entry">
    <h:outputText value="Key: #{entry.key}, Values:" />
    <c:forEach items="#{entry.value}" var="nestedentry">
        <h:outputText value="Nested Key: #{nestedentry.key}, Nested Value: #{nestedentry.value}" />
    </c:forEach><br />
</c:forEach>

但是在您的情况下,#{nestedentry.value}实际上是String[],因此我们需要再次对其进行迭代:

<c:forEach items="#{bean.map}" var="entry">
    <h:outputText value="Key: #{entry.key}, Values:" />
    <c:forEach items="#{entry.value}" var="nestedentry">
        <h:outputText value="Nested Key: #{nestedentry.key}, Nested Values: " />
        <c:forEach items="#{nestedentry.value}" var="nestednestedentry">
            <h:outputText value="#{nestednestedentry}" />
        </c:forEach><br />
    </c:forEach><br />
</c:forEach>

顺便说一句,这也应该起作用rich:dataList。



 类似资料:
  • 问题内容: 我想遍历,对于所有具有特定值的键,我希望将它们添加到new 。我怎样才能做到这一点? 问题答案: 假设类型TreeMap : (键和值类型当然可以是任何类)

  • 问题内容: 不会按优先级顺序进行迭代。 这可以工作,但可以清空队列。 问题答案: 从Javadocs 方法中提供的Iterator 不能保证以任何特定顺序遍历PriorityQueue的元素。如果您需要有序遍历,请考虑使用。 可能还有其他等效的机制。

  • 问题内容: 我创建了这样的一系列用户- 我已经为此添加了对象,并且我想遍历该数组中的每个用户。我知道这在使用ng-repeat的视图中是可能的,但是我需要在控制器中做到这一点。我努力了 - 但是我没有得到任何结果。 问题答案: 届时用户可能尚未加载,因此您需要等待: 这是上面的文档:https : //www.firebase.com/docs/web/libraries/angular/guid

  • 问题内容: 我使用了一个JSON库(如果需要,我不介意进行切换)。 我知道如何进行迭代,但是当我从解析数据时,我没有得到一个数组,只有一个,但是我需要能够通过其索引访问一个项目,例如获取第一个,而我无法弄清楚该怎么做。 问题答案: 也许这会有所帮助:

  • 本文向大家介绍C#如何遍历Dictionary,包括了C#如何遍历Dictionary的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C#如何遍历Dictionary的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,教会大家C#遍历Dictionary的方法,谢谢大家的阅读。

  • 问题内容: 如何遍历Java中的字符串? 我正在尝试使用foreach样式进行循环 问题答案: 如果要使用增强循环,可以将字符串转换为charArray