내가지도에 어떤 객체를 찾고 있어요 발견했을 때 자바 스트림에 술어를 지정하는 방법 : 나는 두 개 이상의 항목을 찾을 때너무 많은 항목
mapObjects.entrySet().stream().map(map -> map.getValue()).filter(predicateA)
, 나는 몇 가지를 필터링하는 두 번째 술어를 지정하려면를 추가 속성. 스트림의 한 번의 반복에서이 작업을 수행 할 수있는 방법이 있습니까? 아니면 한 번 반복해야합니까? count > 1
다른 조건자를 두 번 반복해야합니까?
예를 들어 사람 목록이 있다고 가정 해보십시오. 먼저 name=John
을 찾고 있습니다. 하나 이상의 존이있을 때 나는 surname=Smith
을 찾습니다. 이제는 둘 이상이 있다면 나는 상관하지 않습니다.
Stateful 'Predicate'를 사용할 수는 있지만 병렬'Stream'에서는 작동하지 않습니다. –
나는 이것이 좋은 생각이라고 생각하지 않는다. 술어로 데이터를 색인화 한 다음 중복을 감지해야합니다. 이것은 장기적으로보다 효율적입니다. – sturcotte06
'mapObjects.values (). stream()'으로'mapObjects.entrySet(). stream(). map (map -> map.getValue())를 대체 할 수 있습니다. – VGR