Develop code that uses Java SE 8 collection improvements, including the Collection.removeIf(), List.replaceAll(), Map.computeIfAbsent(), and Map.computeIfPresent() methods - Desenvolver código que use as melhorias em coleções do Java SE 8, incluindo os métodos Collection.removeIf(), List.replaceAll(), Map.computeIfAbsent(), e Map.computeIfPresent()
O Java 8 trouxe vários métodos em Collections que utilizam como argumento uma função lambda, facilitando algumas operações. Serão apresentados exemplos dos 4 métodos relacionados a esse objetivo.
-
É possível remover um item de uma coleção condicionalmente com uma função lambda.
src/org/j6toj8/collections/improvements/Collections_RemoveIf.javalink:../../../src/org/j6toj8/collections/improvements/Collections_RemoveIf.java[role=include]
Saída no consoleLista antes do removeIf: [1, 2, 3, 4, 5, 6, 7, 8, 9] Lista depois do removeIf: [1, 3, 5, 7, 9]
-
É possível modificar todos os elementos da coleção de acordo com uma operação lambda.
src/org/j6toj8/collections/improvements/Collections_ReplaceAll.javalink:../../../src/org/j6toj8/collections/improvements/Collections_ReplaceAll.java[role=include]
Saída no consoleLista antes do replaceAll: [1, 2, 3, 4, 5, 6, 7, 8, 9] Lista depois do replaceAll: [2, 4, 6, 8, 10, 12, 14, 16, 18]
-
É possível colocar valores em um
Mapa partir de uma função lambda, apenas se a chave não estiver presente noMap.src/org/j6toj8/collections/improvements/Collections_ComputeIfAbsent.javalink:../../../src/org/j6toj8/collections/improvements/Collections_ComputeIfAbsent.java[role=include]
Saída no consoleMap antes do computeIfAbsent: {A=65, B=66} Map depois do computeIfAbsent: {A=65, B=66, C=67}
-
É possível alterar valores em um
Mapa partir de uma função lambda, apenas se a chave estiver presente noMap.src/org/j6toj8/collections/improvements/Collections_ComputeIfPresent.javalink:../../../src/org/j6toj8/collections/improvements/Collections_ComputeIfPresent.java[role=include]
Saída no consoleMap antes do computeIfPresent: {A=65, B=66} Map depois do computeIfPresent: {A=4225, B=4356}
-
Using Streams
Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (p. 185). Wiley. Edição do Kindle.