count() 연산으로 끝나는 Stream API 호출 체인을 보고합니다.
이 검사를 통해 다음 호출 체인이 대체됩니다.
Collection.stream().count() → Collection.size(). Java 8에서는 Collection.stream().count()가 컬렉션 요소의 개수를 세기 위해 컬렉션 요소를 실제로 반복합니다. 그러나 대부분 컬렉션의 경우 Collection.size()를 사용하면 훨씬 빠릅니다.Stream.flatMap(Collection::stream).count() → Stream.mapToLong(Collection::size).sum(). 마찬가지로 중첩된 컬렉션 전체를 반복할 필요가 없습니다. 대신 크기를 합산할 수 있습니다.Stream.filter(o -> ...).count() > 0 → Stream.anyMatch(o -> ...). 원본 호출과는 달리 anyMatch()는 일치하는 요소가 발견된 즉시 계산을 중단할 수 있습니다.Stream.filter(o -> ...).count() == 0 → Stream.noneMatch(o -> ...) 위와 유사합니다.
대체 항목에 anyMatch()와 같은 단락 연산이 포함된 경우, 중간 스트림 연산에 의해 부수 효과가 발생하면 눈에 보이는 동작 변화가 일어날 수 있습니다. 일반적으로 스트림 API 호출에서는 부수 효과를 피해야 합니다.