Entrada/Saída e Streams em Java
Alex Liu
Software Development Engineer
Transformação de dados com streams
List para Set)ArrayList, LinkedList)HashSet, TreeSet)Keys/Values como Streams) (ex.: HashMap, TreeMap)Arrays.stream())ArrayList de exemplo chamado names para usar no restante do vídeo
names: ["Alice", "Bob", "Charlie", "David"]
Set, Collectors e Streamimport java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream;// Convert the `ArrayList` we created earlier `names` to a `Stream` Stream<String> namesStream = names.stream();
[Alice, Bob, Charlie, David]// Use `.map()` to convert each element to upper case
Stream<String> upperCaseNameStream = namesStream.map(
name -> name.toUpperCase())
[ALICE, BOB, CHARLIE, DAVID]// use `.collect()` and `Collectors.toSet()` to store the transformed stream data
upperCaseNameStream.collect(Collectors.toSet())
{CHARLIE, ALICE, BOB, DAVID}
O método .reduce()
Uso de .reduce() recebe duas entradas
0(x, y) -> x + y significa:x é o total acumuladoy é o elemento atual sendo processadoy a x até processar todos os elementosArrayList names em um objeto Stream.Stream<String> stream = names.stream();
.map() para converter o nome em seu comprimento e .reduce() para somá-losstream
.map(name -> name.length())
.reduce(0, (sum, length) -> sum + length);
20Entrada/Saída e Streams em Java