我试图根据值筛选出一个列表。我有两个List。一个是我要删除的名称列表,即animalList中存在的名称。另一个是主主要列表AnimalPrimaryDataPojoFilterList,在其中我必须从animalList删除与名称匹配的对象。现在我确实有解决方案,但我认为这需要很多时间。下面是代码。我正在使用Java8。可以对其进行优化吗?

if(animalList!=null && animalList.size()>0)
        {
            for(AnimalFilterPojo dtoObject:animalList)
            {
                if(!dtoObject.getApproved())
                {
                    for(AnimalPrimaryDataPojo mainDtoObject: AnimalPrimaryDataPojoFilterList)
                    {
                        if(mainDtoObject.getAnimalName().equalsIgnoreCase(dtoObject.getValue()))
                        {
                            AnimalPrimaryDataPojoFilterList.remove(mainDtoObject);
                        }
                    }
                }
            }

最佳答案

使用removeAll()方法。

AnimalPrimaryDataPojoFilterList.removeAll(animalList);


它将从animalList中删除​​AnimalPrimaryDataPojoFilterList的对象

N.B:您需要在hashCode()中实现equals()AnimalFilterPojo方法

09-11 02:21