You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -591,18 +591,176 @@ Nesse caso é passado um argumento adicional. Ele é a função de combinação.
591
591
592
592
===== Collect
593
593
594
-
. collect
595
-
. joining
596
-
. averaging int
597
-
. toCollection
598
-
. toMap
599
-
. toMap (3 param)
600
-
. groupingBy
601
-
. groupingBy (2 param)
602
-
. groupingBy (3 param)
603
-
. partitioningBy
604
-
. partitioningBy (2 param)
605
-
. mapping (2 param)
594
+
A operação final `collect` também é um tipo de _Reduce_, porém é utilizada para objetos mutáveis. Ou seja, ao invés de utilizar a operação `reduce` com `String`, provavelmente seria mais eficiente utilizar a operação `collect` com a classe `StringBuilder`, para evitar a criação de vários objetos do tipo `String`. Como Java utiliza muitos objetos mutáveis, incluindo listas e mapas, geralmente a operação `collect` será mais eficiente do que a `reduce`.
595
+
596
+
Por serem muito comuns, existem vários _Collectors_ já implementados no Java, disponíveis na classe `Collectors`.
597
+
598
+
. É possível utilizar um `Collector` que junta várias `Strings`.
Perceba que o resultado desse exemplo é idêntico ao anterior, porém foi passado um argumento a mais, que é o construtor do mapa que deveria ser utilizado.
716
+
717
+
. É possível utilizar um `Collector` que particiona valores em `True` ou `False` a partir de um função do tipo `Predicate`.
Perceba que nesse caso os valores foram combinados utilizando um outro `Collector`, que juntou os valores daquela mesma chave em uma única `String` separados por vírgula.
748
+
749
+
. É possível ainda adicionar uma camada a mais de transformação ao utilizar um `Collector`, utilizando o método `mapping`.
Esse tipo de código, apesar de complexo, pode aparecer no exame de certificação. É recomendado praticar esses exemplos com uma IDE para entender de fato seus comportamentos.
0 commit comments