Скажем, я определяю эти фильтры и также создаю их карту
Код: Выделить всё
class Person {
Strong status;
}
Predicate
completedP = j->j.getStatus().equalsIgnoreCase("completed");
Predicate inProgressP = j->j.getStatus().equalsIgnoreCase("inprogress");
Predicate nullStatusP = j->j.getStatus() == null && j.id() == null;
Map filterMap = Map.of("complatedP",completedP,
"inProgressP", inProgressP, "nullStatusP", nullStatusP);
Как мне получить выходные данные/результат как
Код: Выделить всё
Map
Код: Выделить всё
Person p1 = new Person("completedP");
Person p2 = new Person("completedP");
Person p3 = new Person("inProgressP");
Person p4 = new Person("inProgressP");
Person p5 = new Person(null);
Person p6 = new Person(null);
Код: Выделить всё
completedP
Код: Выделить всё
inProgressP
Код: Выделить всё
nullStatusP
Ключом к карте результатов является одно из трех названий фильтров. Я не хочу выполнять
groupBy 3 раза и каждый раз применять один фильтр.
Как мне обобщить, если на карте есть N фильтров. Однако для моих текущих требований 3 фильтра — это все, что мне нужно
Подробнее здесь: https://stackoverflow.com/questions/788 ... -outputmap