Java 为什么不保存添加到arraylist的数据

Java 为什么不保存添加到arraylist的数据,java,Java,我正在循环浏览两个对象列表。我正在将列表#2中的数据推送到hashmap中,并将其添加到新的数组列表中。但是hashmap中的数据似乎没有被持久化 列表1是一组唯一的对象 List2是具有冗余数据的对象列表,这些冗余数据需要一起收集到唯一的list1中 for (POJOClass1 uniqitm : uniqitms) //list1 { aggrdata.clear(); for (POJOClass1 redundantitm : redundantitms)

我正在循环浏览两个对象列表。我正在将列表#2中的数据推送到hashmap中,并将其添加到新的数组列表中。但是hashmap中的数据似乎没有被持久化

列表1是一组唯一的对象 List2是具有冗余数据的对象列表,这些冗余数据需要一起收集到唯一的list1中

for (POJOClass1 uniqitm : uniqitms)  //list1
{   
    aggrdata.clear();

    for (POJOClass1 redundantitm : redundantitms) //list2               
    {
        if (redundantitm.getResource().equals(uniqitm.getResource()))   //For all objects matching uniq itm, i push below 2 attributes into a hashmap
        {
            aggrdata.put(redundantitm.getMan(), redundantitm.getData_map());
        }
    }

    uniqitm.setMap2(aggrdata); //aggregated data is pushed into the uniq itm object
    uniqitm.setMap(null);
    uniqitm.setMan(null);
    final.add(uniqitm);         //uniq itm object is added to a new array list to be used outside
}
final.stream().forEach(s-> System.out.println(s.getResource()+" : "+s.getMap2()));  //The aggregated data doesnt seem to persist correctly

我希望输出包含来自列表2中所有对象的聚合数据。

我意识到需要在forloop中声明hashmap才能正常工作。 aggrdata.clear()不够

for (POJOClass1 uniqitm : uniqitms)  //list1
{   
    Map<String,Map<String,String>> aggrdata= new HashMap<String,Map<String,String>>();

    for (POJOClass1 redundantitm : redundantitms) //list2               
    {
        if (redundantitm.getResource().equals(uniqitm.getResource()))   //For all objects matching uniq itm, i push below 2 attributes into a hashmap
        {
            aggrdata.put(redundantitm.getMan(), redundantitm.getData_map());
        }
    }

    uniqitm.setMap2(aggrdata); //aggregated data is pushed into the uniq itm object
    uniqitm.setMap(null);
    uniqitm.setMan(null);
    final.add(uniqitm);         //uniq itm object is added to a new array list to be used outside
}
for(POJOClass1 uniqitm:uniqitms)//list1
{   
Map aggrdata=new HashMap();
for(POJOClass1 redundantitm:redundantitms)//list2
{
如果(redundantitm.getResource().equals(uniqitm.getResource())//对于所有匹配uniq itm的对象,我将下面的2个属性推送到一个hashmap中
{
aggrdata.put(redundantitm.getMan(),redundantitm.getData_map());
}
}
setMap2(aggrdata);//聚合数据被推送到uniq itm对象中
uniqitm.setMap(空);
uniqitm.setMan(空);
final.add(uniqitm);//uniq itm对象被添加到一个新的数组列表中,以便在外部使用
}

您的
列表2
和其他东西在哪里?