使用HashMap作为过滤器来过滤对象的Arraylist?

时间:2019-07-10 06:27:39

标签: java hashmap filtering

我有一个对象列表

public class Object
{
  String attribute1,
         attribute2,
         atribute3;
}

我想根据列表的属性是否与HashMap中指定的值匹配来筛选该列表。每次只能包含attribute1和attribute2或仅包含attribute2时,映射可以有所不同。

我当前的方法只是检查键是否存在,然后过滤列表,否则检查下一个键,但是如果我的对象具有许多属性,这可能会变得非常麻烦。

public List<Objects> filterList(HashMap<String, String> filter)
{
   List<Objects> list = getList();

  if(filter.containsKey("attribute1"))
    {
       list.removeIf(n -> !n.getAttribute1().equals(filter.get("attribute1")));
    }
 //repeats for all attributes
} 

有没有更有效或更优雅的方法?

0 个答案:

没有答案