Skip to content

Latest commit

 

History

History
84 lines (73 loc) · 2.74 KB

File metadata and controls

84 lines (73 loc) · 2.74 KB

Melhorias de Java 8 em Coleções

Objetivo
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.

  1. É possível remover um item de uma coleção condicionalmente com uma função lambda.

    src/org/j6toj8/collections/improvements/Collections_RemoveIf.java
    link:../../../src/org/j6toj8/collections/improvements/Collections_RemoveIf.java[role=include]
    Saída no console
    Lista antes do removeIf: [1, 2, 3, 4, 5, 6, 7, 8, 9]
    Lista depois do removeIf: [1, 3, 5, 7, 9]
  2. É possível modificar todos os elementos da coleção de acordo com uma operação lambda.

    src/org/j6toj8/collections/improvements/Collections_ReplaceAll.java
    link:../../../src/org/j6toj8/collections/improvements/Collections_ReplaceAll.java[role=include]
    Saída no console
    Lista 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]
  3. É possível colocar valores em um Map a partir de uma função lambda, apenas se a chave não estiver presente no Map.

    src/org/j6toj8/collections/improvements/Collections_ComputeIfAbsent.java
    link:../../../src/org/j6toj8/collections/improvements/Collections_ComputeIfAbsent.java[role=include]
    Saída no console
    Map antes do computeIfAbsent: {A=65, B=66}
    Map depois do computeIfAbsent: {A=65, B=66, C=67}
  4. É possível alterar valores em um Map a partir de uma função lambda, apenas se a chave estiver presente no Map.

    src/org/j6toj8/collections/improvements/Collections_ComputeIfPresent.java
    link:../../../src/org/j6toj8/collections/improvements/Collections_ComputeIfPresent.java[role=include]
    Saída no console
    Map antes do computeIfPresent: {A=65, B=66}
    Map depois do computeIfPresent: {A=4225, B=4356}
Referências
  • Using Streams

    Boyarsky, Jeanne; Selikoff, Scott. OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide (p. 185). Wiley. Edição do Kindle.

  • The Java 8 Stream API Tutorial.