将list中的元素按照属性分类成树状的map

来源:互联网 发布:linux redis 启动 编辑:程序博客网 时间:2024/05/16 14:54
 public LinkedHashMap<String, List<DevInfo>> queryList(List<DevInfo> list) {       LinkedHashMap<String, List<DevInfo>> map = new LinkedHashMap<>();       for (DevInfo li : list) {//将需要归类的属性与map中的key进行比较,如果map中有该key则添加bean如果没有则新增key           if (map.containsKey(li.getClassID())) {//取出map中key对应的list并将遍历出的bean放入该key对应的list中               ArrayList<DevInfo> templist = (ArrayList<DevInfo>) map.get(li.getClassID());               templist.add(li);           } else {//创建新的list               ArrayList<DevInfo> temlist = new ArrayList<DevInfo>();               temlist.add(li);               map.put(li.getClassID(), temlist);           }       }       return map;   }
  private List<Bean> initDatas(  List<?>  args)    {        List<Bean> mDatas = new ArrayList<Bean>();        LinkedHashMap<String, List<DevInfo>> map = queryList(( List<DevInfo>)args);        int parentID = 0;        for (Object classID : map.keySet()) {            List<DevInfo> list = map.get(classID);            int id =0;            String name = ClassType.getClassType( Integer.valueOf( classID.toString() )).getName();            mDatas.add(new Bean(--parentID, -100 ,name+"("+list.size()+")" , null));            for (DevInfo info:list   ) {                mDatas.add(new Bean(id++, parentID ,name , info) );            }        }        return mDatas;    }

阅读全文
0 0
原创粉丝点击