|
| 1 | +:java-package: src/org/j6toj8/collections |
| 2 | +:section-java-package: ../../../{java-package} |
| 3 | + |
| 4 | +=== Melhorias de Java 8 em Coleções |
| 5 | + |
| 6 | +.Objetivo |
| 7 | +-------------------------------------------------- |
| 8 | +Develop code that uses Java SE 8 collection improvements, including the Collection.removeIf(), List.replaceAll(), Map.computeIfAbsent(), and Map.computeIfPresent() methods |
| 9 | +- |
| 10 | +Desenvolver código que use as melhorias em coleções do Java SE 8, incluindo os métodos Collection.removeIf(), List.replaceAll(), Map.computeIfAbsent(), and Map.computeIfPresent() |
| 11 | +-------------------------------------------------- |
| 12 | + |
| 13 | +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. |
| 14 | + |
| 15 | +. É possível remover um item de uma coleção condicionalmente com uma função lambda. |
| 16 | ++ |
| 17 | +[source,java,indent=0] |
| 18 | +.{java-package}/improvements/Collections_RemoveIf.java |
| 19 | +---- |
| 20 | +include::{section-java-package}/improvements/Collections_RemoveIf.java[tag=code] |
| 21 | +---- |
| 22 | ++ |
| 23 | +.Saída no console |
| 24 | +[source,console] |
| 25 | +---- |
| 26 | +Lista antes do removeIf: [1, 2, 3, 4, 5, 6, 7, 8, 9] |
| 27 | +Lista depois do removeIf: [1, 3, 5, 7, 9] |
| 28 | +---- |
| 29 | + |
| 30 | +. É possível modificar todos os elementos da coleção de acordo com uma operação lambda. |
| 31 | ++ |
| 32 | +[source,java,indent=0] |
| 33 | +.{java-package}/improvements/Collections_ReplaceAll.java |
| 34 | +---- |
| 35 | +include::{section-java-package}/improvements/Collections_ReplaceAll.java[tag=code] |
| 36 | +---- |
| 37 | ++ |
| 38 | +.Saída no console |
| 39 | +[source,console] |
| 40 | +---- |
| 41 | +Lista antes do replaceAll: [1, 2, 3, 4, 5, 6, 7, 8, 9] |
| 42 | +Lista depois do replaceAll: [2, 4, 6, 8, 10, 12, 14, 16, 18] |
| 43 | +---- |
| 44 | + |
| 45 | +. É possível colocar valores em um `Map` a partir de uma função lambda, apenas se a chave *não* estiver presente no `Map`. |
| 46 | ++ |
| 47 | +[source,java,indent=0] |
| 48 | +.{java-package}/improvements/Collections_ComputeIfAbsent.java |
| 49 | +---- |
| 50 | +include::{section-java-package}/improvements/Collections_ComputeIfAbsent.java[tag=code] |
| 51 | +---- |
| 52 | ++ |
| 53 | +.Saída no console |
| 54 | +[source,console] |
| 55 | +---- |
| 56 | +Map antes do computeIfAbsent: {A=65, B=66} |
| 57 | +Map depois do computeIfAbsent: {A=65, B=66, C=67} |
| 58 | +---- |
| 59 | + |
| 60 | +. É possível alterar valores em um `Map` a partir de uma função lambda, apenas se a chave estiver presente no `Map`. |
| 61 | ++ |
| 62 | +[source,java,indent=0] |
| 63 | +.{java-package}/improvements/Collections_ComputeIfPresent.java |
| 64 | +---- |
| 65 | +include::{section-java-package}/improvements/Collections_ComputeIfPresent.java[tag=code] |
| 66 | +---- |
| 67 | ++ |
| 68 | +.Saída no console |
| 69 | +[source,console] |
| 70 | +---- |
| 71 | +Map antes do computeIfAbsent: {A=65, B=66} |
| 72 | +Map depois do computeIfAbsent: {A=4225, B=4356} |
| 73 | +---- |
| 74 | + |
| 75 | +**** |
| 76 | +
|
| 77 | +* Using Streams |
| 78 | ++ |
| 79 | +Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (p. 185). Wiley. Edição do Kindle. |
| 80 | +
|
| 81 | +* https://www.baeldung.com/java-8-streams[The Java 8 Stream API Tutorial.] |
| 82 | +
|
| 83 | +**** |
0 commit comments