Фильтровать через Arraylist объектов, используя HashMap в качестве фильтра? - PullRequest
0 голосов
/ 10 июля 2019

У меня есть список объектов

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
} 

Есть ли более эффективный или элегантный способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...