日期:2014-05-19  浏览次数:20666 次

java 泛型List 根据一个列分类
一个泛型list集合 里面有很多数据其中数据的一个列是ID 我需要根据这个ID来分类 再把分好的类分别放到map对应的里面,或者是一个新的list里面也可以(这个list也需要是泛型的),id的类型有几个 map里面就有多少个key value里面是包含一个和这个key的类型一样的数据,这个ID不是固定的,是根据需求的不同而变化的!(一共有90多个类型),这么说吧!  
String leixing="3,7,6,9,12";
List<TyLogTypeReport> list=new ArrayList<TyLogTypeReport>();
这个list是装有这5个类型的说有数据,而这个list的数据是这样的
com.log.model.TyZcsLogReport@1ed2bbd, 
com.log.model.TyZcsLogReport@1d2bb9f,

我需要对这5个类型分类 根据这5个类型生成5个装有对应的类型数据的listA,listB,listc,listd,liste。
小弟我没有做过这样的处理!纠结了好久 ,还是不成!所以不得已才在这里发帖!
 真心麻烦各位大侠帮小弟我指点指点下!!!真心感谢了!

------解决方案--------------------
返回一个Map<Integer,List<TyLogTypeReport>> map。。。
Integer指的是id,
List<TyLogTypeReport>分类后的id所对应的list。

对原先的List<TyLogTypeReport> list进行迭代,

for (TyLogTypeReport report : List<TyLogTypeReport>) {

if (!map.containsKey(report.getId())) {
// 往map里put该id以及TyLogTypeReport
} else {
// 把map里的该id对应的list再add
}
}
------解决方案--------------------
顶4楼,感觉他的队。
我改良了一下他for循环中的内容:
Java code

for(TyLogTypeReport report : list){
            map.put(report.getId(),
                    map.containsKey(report.getId()) ? 
                            ((List) map.get(report.getId())).add(report) :
                            new ArrayList<TyLogTypeReport>().add(report));
        }