如何把下面代码中的list值赋给map返回????现在这段代码运行的时候map.size()为0,而list.size()为1,多谢了。解决马上结贴!Map<String, List<CadreArch>> map = new LinkedHashMap<String, List<CadreArch>>();
        Identifierinfo user = identifierinfoDAO.get(userid);
        for (Humanmaterial m:user.getHumanmaterials()) {
            if (m.getOpertype().intValue() == Constants.OPERTYPE_CENTERLASTAUDIT_PASS) {
             List<CadreArch> list = map.get(m.getArchtype());
                if (list == null) {
                    list = new ArrayList<CadreArch>();
                }
                list.add(new CadreArch(m.getArchname(), m.getArchdate()));
             }
        }
        for(Erecord e: user.getErecords())
        {
        
            if(e.getOpertype().intValue()==Constants.OPERTYPE_CENTERFIRSTAUDIT_PASS)
            {
                List<CadreArch> list=map.get(e.getArchtype());
                if (list == null) {
                    list = new ArrayList<CadreArch>();
                }
                list.add(new CadreArch(e.getAttachname(), e.getUploaddate()));
            }
           
        }
        return map;
    }

解决方案 »

  1.   

    小弟刚接触java,我应该怎么加入map里面,然后能在页面中通过nested标签把值给遍历出来呢?多谢各位大哥.....
      

  2.   

    map.put(key, list);
    其中key是一个字符串,作为list在map中的键值。
      

  3.   

    for (Humanmaterial m:user.getHumanmaterials()) {
                if (m.getOpertype().intValue() == Constants.OPERTYPE_CENTERLASTAUDIT_PASS) {
                 List<CadreArch> list = map.get(m.getArchtype());
                    if (list == null) {
                        list = new ArrayList<CadreArch>();
                    }
                    list.add(new CadreArch(m.getArchname(), m.getArchdate()));
                 }
            map.put("m",list);//这里加入应该不对吧?
    应该for循环外面加吧?这样会不会key值重复呢?
            }
    for(Erecord e: user.getErecords())
            {
            
                if(e.getOpertype().intValue()==Constants.OPERTYPE_CENTERFIRSTAUDIT_PASS)
                {
                    List<CadreArch> list=map.get(e.getArchtype());
                    if (list == null) {
                        list = new ArrayList<CadreArch>();
                    }
                    list.add(new CadreArch(e.getAttachname(), e.getUploaddate()));
                }
    map.put("m",list);//这个地方也这么加,对吗?
               
            }
    还请stonefeng(浩) 仁兄指点。。
      

  4.   

    你打算怎么样把List的值放到Map中?List中的元素是作为Map的key还是value呢?
      

  5.   

    我看你的map定义:
      Map<String, List<CadreArch>> 
    这样的话,只能把list加入到map中,不能把list的值放入map。
    如果真是这样定义的话(目的就如此的话),把
      map.put(key, list);
    放在return前面就行了。
      

  6.   

    更正:第3行后段改为:
    不能把list里的元素放入map
      

  7.   

    stonefeng(浩)仁兄,这样return map.put("m",list);不行的呀,因为 List<CadreArch> list=map.get(e.getArchtype());
    这个list都是在if()里面定义的,不能拿出来用呀!
      

  8.   

    在外面定义一个List<CadreArch>类型变量,在需要的时候赋值不就可以了吗!
    另外,后面的部分建议你这样写:
      map.put("m",list);
      return map;我要下线了,这样的问题找个同事问问应该就行了。
      

  9.   

    我在外边定义个 List<CadreArch> L=new ArrayList<CadreArch>();这样一个变量L,我在每个 list.add(new CadreArch(m.getArchname(), m.getArchdate()));
    后面想这样写L.add(list.get(这里面不知道写什么值呀?)),对吗?或者有别的赋值办法,小弟愚昧,还请高手指点。。