Java Streams로 작업할 때 개발자는 종종 groupingBy() 메서드와 축소 메서드를 모두 사용하는 상황에 직면합니다. () 데이터를 조작하기 위한 수집기입니다. 그러나 어떤 경우에는 toMap() 메서드를 사용하는 더 효율적인 접근 방식이 있습니다.
패턴이란 무엇입니까?
이전에서 @Holger가 지적한 바와 같이 논의 결과, groupingBy와 함께 감소 컬렉터를 사용할 때 대신 toMap 컬렉터를 사용하는 것이 더 적절하다는 사실이 알려졌습니다. 이 패턴은 수많은 Stackoverflow 토론의 경험과 관찰을 통해 분명합니다.
toMap()이 선호되는 이유
groupingBy 수집기는 두 번째 수집기를 인수로 기대하여 이를 생성합니다. 데이터 그룹에 Mutable Reduction을 적용하는 데 적합합니다. 대조적으로, 병합 기능이 있는 toMap 컬렉터는 클래식 Reduction에 이상적입니다. toMap의 merge 함수는 Reduction 함수와 비슷한 목적과 모양을 가지고 있지만, 그렇게 표시되지는 않습니다.
실제로 Reduction을 수행하는 컬렉터는 Optional을 반환하는데, 이는 사용할 때 항상 바람직하지는 않습니다. 그룹화 기준. toMap이 이러한 경우를 보다 원활하게 처리하기 때문에 여기에 사용됩니다.
추가 패턴
이 특정 패턴이 확인되었지만 더 많은 패턴이 있을 가능성이 높습니다. 이러한 API를 사용하는 동안 명백합니다. 그러나 하나의 답변으로 이를 모두 수집하는 것은 Stackoverflow의 범위를 벗어납니다. 개발자는 이러한 API를 더 자세히 살펴보고 경험을 공유하여 추가 패턴과 모범 사례를 알아내는 것이 좋습니다.
위 내용은 Java 스트림에서 GroupingBy 및 축소 대신 toMap()을 언제 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!