有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何根据键获取映射值?

我有一个包含批次号的批次列表对象。通过for循环,我将批处理数作为key发送给我班上的一张地图。所以,key包含批次号,value包含该批次号的作业列表

List<String> batch = (List<String>) session.getAttribute("batchList");
for(int i=0;i<=batch.size()-1;i++) {
    jobMap.put(batch.get(i), ReportManager.getJobNumberForBatch(agent,batch.get(i)));
}

现在在jsp页面中,我需要基于键显示map的值。如果我给${Map.values},我们将得到一个不分批次的作业列表。但是,根据我的要求,我需要根据所选批次获得工作清单

有人能帮我吗


共 (1) 个答案

  1. # 1 楼答案

    你可以使用Map.entrySet()。该方法将返回一个SetMap.Entry,从中可以获得特定keyvalueEntry

    为每个循环使用一个:

    for(Map.Entry entry : map.entrySet()){
          System.out.println(entry.getKey() + " " + entry.getValue());
    }
    

    在JSP文件中,如果您使用的是JSTLtaglib,那么使用<c:forEach>将实现以下功能:

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    
    <c:forEach items="${map}" var="entry">
        batchNumber = ${entry.key}, value = ${entry.value} <br>
    </c:forEach>