У меня есть список объектов N, где N равно
N
|--- type (1,2,3)
|--- A (applicable if type 1)
|--- B (applicable if type 2)
|--- C (applicable if type 3)
|--- List<Integer> p
Теперь желаемый результат - это фильтрованная версия List, такая что:
create a list List<Integer> l
Сделайте это первым:
if(type == 1) && (A > some_value):
Add all elements of p to l
select this N
Позже, когда образуется L:
if(type != 1)
if(l contains any element from p):
select this N
Как этого добиться, используя потоки за один шаг?
Я могу сначала отфильтровать и создать список «l», а затем использовать этот список для фильтрации.
l = stream.filter(a -> a.type == 1 && a.A > some_value).collect(..)
Затем используйте l для дальнейшей фильтрации.
Но есть ли лучший и точный способ?