Java - 根据多个值过滤列表

标签 java arraylist

我正在尝试根据值过滤掉列表。我有两个列表。其中一个是我想要删除的名称列表,即存在于 animalList 中的名称列表。另一个是主要主列表 AnimalPrimaryDataPojoFilterList ,我必须从中删除与 animalList 中的名称匹配的对象。现在我确实有了解决方案,但我认为这需要很多时间。下面是代码。我使用的是 Java 8。可以优化吗?

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);

它将从 AnimalPrimaryDataPojoFilterList 中删除 animalList 的对象

注意:您需要在 AnimalFilterPojo 中实现 hashCode()equals() 方法

关于Java - 根据多个值过滤列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47221309/

相关文章:

java - 有没有办法在数组列表中定义索引的值?

java - 用于按浮点参数对对象数组列表进行排序的比较器

java - JTextField 可滚动,无需 JScrollBar

java - 自动生成数据库请求

Java获取不在arraylist中的元素

java - 在两个列表之间执行 'contains' 的有效方法

java - 比较 ArrayList 中的字符?

java - Gradle 获取所有依赖项的列表

android - java.lang.NoClassDefFoundError : java. util.Objects

java - ElasticsearchOperations 查询不返回完全匹配