스트림 내에서 필터를 걸지 만 우선 순위를 사용하는 옵션을 찾고 있습니다. 다음자바에서 스트림 필터 함수의 우선 순위 지정
는의사 코드 : 결과의 목록은 첫 번째 기준으로 필터링해야한다
results.stream().filter(prio1).ifNotFound(filter(prio2)).collect(toList())
"prio1
"라는 존재하지 않는 경우 일치하는 두 번째 필터는 필터를 사용해 적용되어야한다 발견 prio2
이라는 두 번째 기준에 따라 결과가 수집됩니다.
스트림을 사용하여 Java 8에서 어떻게 구현합니까?
나는 한 줄짜리 줄을 찾고 있습니다. 당신이 정말로 한 라이너가 다음 다음 작업을 수행 할 수 있습니다 원하는 경우
final List<Foo> foo;
if (results.stream().anyMatch(prio1)) {
foo = results.stream().filter(prio1).collect(Collectors.toList());
} else {
foo = results.stream().filter(prio2).collect(Collectors.toList());
}
하지만, 두 번 목록을 스트리밍 주위에 얻을 수있는 방법은 없습니다 :
'ifNotFound'로 무엇을 의미하는지 명확하지 않습니다. –
두 번째 필터 prio2가 적용되지 않을 조건을 말할 수 있습니까? – MigSena
모든 항목은 prio1과 일치해야하며 일치하는 항목이없는 경우 prio2 – Ckkn