日期:2014-05-20  浏览次数:20795 次

java list 剔除重复
我这里有两个list里面中包含一个map而map里又包含了一个list大致结构可以说是这样

list{
                    id:
    name:
    list:[
                {
name
}
]

}
请问如何剔除两个list里面的重复数据
然后在合并

------解决方案--------------------
问题描述似乎不太明确。。。可以举个简单例子不?
------解决方案--------------------
for (int i = 0; i < list.size(); i++) {
if(list2.contains(list.get(i)))
{
System.out.println("有");
}
else
{
System.out.println("没有");
}
}

把第一个list里面的数据读出来再去判断就行了
------解决方案--------------------
太不明确了啊,你的重复数据指的是什么样的重复,id重复就算重复还是所有的都一样才算重复
------解决方案--------------------
求一个简单数据样本,有点晕乎。

------解决方案--------------------
Java code

    public static void main(String[] args) {
        List list = new ArrayList();
        List list1 = new ArrayList();
        Map map = new HashMap();
        for(Object o : list) {
            Map temp = (Map) o;
            map.put(temp.get("id"), temp);
        }
        for(Object o : list1) {
            Map temp = (Map) o;
            Map m = (Map)map.get(temp.get("id"));
            if(m != null) {//存在相同id
                List nameList = (List)m.get("list");
                List tempList = (List) temp.get("list");
                for(Object name : tempList) {
                    if(!nameList.contains(name)) {
                        nameList.add(name);
                    }
                }
            } else {//不存在相同id
                map.put(temp.get("id"), temp);
            }
        }
    }

------解决方案--------------------
重写你的成员变量的方法