Java和JSTL标签中遍历HashMap的方法

12 篇文章 0 订阅
原文地址: http://www.javaweb.cc/language/java/032291.shtml
在Java中:
第一种:
  Map map = new HashMap();
  Iterator iter = map.entrySet().iterator();
  while (iter.hasNext()) {
   Map.Entry entry = (Map.Entry) iter.next();
   Object key = entry.getKey();
   Object val = entry.getValue();
  }
  效率高,以后一定要使用此种方式!
第二种:
  Map map = new HashMap();
  Iterator iter = map.keySet().iterator();
  while (iter.hasNext()) {
   Object key = iter.next();
   Object val = map.get(key);
  }
  效率低,以后尽量少使用!
在JSTL中:
    var data = [
                <c:forEach var="up" items="${userProject}" varStatus="loop">
                {name:"${up.key}",value:"${up.value}",color:getColor()}
                <c:if test="${!loop.last}">,</c:if>
                </c:forEach>
            ];
类似地,在JSTL中遍历ArrayList如下:
<c:forEach var="duration" items="${failureDuration}" varStatus="loop">
      "${duration}"
      <c:if test="${!loop.last}">,</c:if>
</c:forEach>
========以下为公司项目中的部分代码,不用管==========
List<Build> oneProjectBuilds = new ArrayList<>();
        //find all the projects
        HashMap<String, HashMap<String, List<? extends Object>>> allProjects = new HashMap<>();
        allProjects = projectService.findAllProjects();
        List<Integer> numberList = new ArrayList<Integer>();
        int projectId = 0;
        int successBuildNum = 0;
        int failureBuildNum = 0;
        Map<String,List<Integer>> projectBuild = new HashMap<>();
        HashMap<String, ?> result = new HashMap<>();
        for(Map.Entry<String, HashMap<String, List<? extends Object>>> project:allProjects.entrySet()){
            for(Map.Entry<String, List<? extends Object>> projectValue: project.getValue().entrySet()){
                if("projectId".equals(projectValue.getKey())){
                    projectId = Integer.parseInt(projectValue.getValue().get(0).toString());
                    oneProjectBuilds = projectService.findBuildsByProjectId(projectId);
                    //We count the number of successful builds and fail builds, then put them into a list
                    for(Build build:oneProjectBuilds){
                        result = projectService.buildSummary(HttpUtils.urlEncode(build.getBuildName()));
                        successBuildNum += ((ArrayList)(result.get("successDuration"))).size();
                        failureBuildNum += ((ArrayList)(result.get("failureDuration"))).size();
                    }
                    numberList.add(successBuildNum);
                    numberList.add(failureBuildNum);
                    //Find the project name then put the name and numberList into a map
                    projectBuild.put(projectService.findByprojectId(projectId).getProjectName(),numberList);
                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值