Prática de Transmissão
Chegou a hora de você praticar com a Stream API. Você tem algumas tarefas simples envolvendo o uso de vários métodos da Stream API. Desta vez, não fornecerei tarefas específicas. Em vez disso, darei a você uma lista para trabalhar e qual deverá ser o resultado esperado. Em outras palavras, seu objetivo é realizar operações na lista para alcançar o resultado esperado.
Esse tipo de tarefa pode ajudar você a desenvolver a habilidade de alcançar resultados sem uma especificação clara. Você verá apenas os dados de entrada e o resultado esperado.
Você precisa usar a Stream API para realizar essas tarefas!
Nota
Recomendo vivamente trabalhar com este código num IDE, pois aí poderá ver vários métodos, e o IntelliJ ajudará você com a geração de código ou referências a métodos. Contudo, nada o impede de completar esta tarefa aqui na plataforma—fica totalmente ao seu critério!
Tarefa 1:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); //write your code here } }
Utilize a API Stream para elevar ao quadrado cada número da lista e coletar o resultado em uma nova lista. Saída Esperada:
[1, 4, 9, 16, 25]
Tarefa 2:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); //write your code here } }
Utilize a API Stream para encontrar o comprimento do nome mais longo da lista. Saída Esperada:
7
Tarefa 3
Entrada:
main.java
123456789101112131415package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); //write your code here } }
Utilize a API Stream para contar o número total de palavras distintas (sem distinção de maiúsculas e minúsculas) em todas as frases. Saída esperada:
37
Tarefa 4:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); //write your code here } }
Utilize a API de Streams para encontrar a concatenação das duas primeiras palavras que tenham comprimentos pares.
Nota
Use
collect(Collectors.joining())
para concatenar as palavras.
Saída Esperada:
bananacherry
Tarefa 5:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //write your code here } }
Utilize a API Stream para encontrar a soma dos quadrados dos números pares na lista.
Nota
Utilize
mapToInt
em vez demap
para ter acesso ao método terminalsum
.
Saída Esperada:
220
Tarefa 6:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); //write your code here } }
Utilize a API Stream para agrupar palavras de acordo com seus tamanhos e coletar o resultado em um Map.
Nota
Você pode usar collect(Collectors.groupingBy(e -> e.length())) para coletar o stream em um Map.
Saída esperada:
{4=[data], 5=[maçã], 6=[banana, cereja], 10=[amora-preta]}
Bom trabalho!
Se você completou todas as tarefas, muito bem!
Esses problemas podem ser resolvidos não apenas pelos métodos que eu forneci no bloco de soluções. Você pode resolvê-los da maneira que for mais conveniente para você. Talvez escrever métodos separados e usá-los no método map()
, ou talvez nem utilizar a API Stream.
Você deve ter notado que alguns métodos das tarefas não foram abordados anteriormente. Nessas situações, vale a pena abrir o IntelliJ IDEA e explorar como essas tarefas podem ser realizadas usando diferentes métodos. Se tiver dúvidas sobre os métodos ou precisar de informações adicionais, sinta-se à vontade para perguntar no Chat da Comunidade, onde outros usuários ou autores do curso podem ajudar.
Na programação, o aprendizado nunca termina, e descobrir novas maneiras de resolver diversos problemas é parte da jornada. Não hesite em explorar a internet para encontrar novas informações ou ler a documentação onde todos os métodos são descritos. Boa sorte!
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 4
Prática de Transmissão
Deslize para mostrar o menu
Chegou a hora de você praticar com a Stream API. Você tem algumas tarefas simples envolvendo o uso de vários métodos da Stream API. Desta vez, não fornecerei tarefas específicas. Em vez disso, darei a você uma lista para trabalhar e qual deverá ser o resultado esperado. Em outras palavras, seu objetivo é realizar operações na lista para alcançar o resultado esperado.
Esse tipo de tarefa pode ajudar você a desenvolver a habilidade de alcançar resultados sem uma especificação clara. Você verá apenas os dados de entrada e o resultado esperado.
Você precisa usar a Stream API para realizar essas tarefas!
Nota
Recomendo vivamente trabalhar com este código num IDE, pois aí poderá ver vários métodos, e o IntelliJ ajudará você com a geração de código ou referências a métodos. Contudo, nada o impede de completar esta tarefa aqui na plataforma—fica totalmente ao seu critério!
Tarefa 1:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); //write your code here } }
Utilize a API Stream para elevar ao quadrado cada número da lista e coletar o resultado em uma nova lista. Saída Esperada:
[1, 4, 9, 16, 25]
Tarefa 2:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eva"); //write your code here } }
Utilize a API Stream para encontrar o comprimento do nome mais longo da lista. Saída Esperada:
7
Tarefa 3
Entrada:
main.java
123456789101112131415package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> sentences = Arrays.asList( "Java Stream API provides a fluent interface for processing sequences of elements.", "It supports functional-style operations on streams of elements, such as map-reduce transformations.", "In this exercise, you need to count the total number of words in all sentences." ); //write your code here } }
Utilize a API Stream para contar o número total de palavras distintas (sem distinção de maiúsculas e minúsculas) em todas as frases. Saída esperada:
37
Tarefa 4:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); //write your code here } }
Utilize a API de Streams para encontrar a concatenação das duas primeiras palavras que tenham comprimentos pares.
Nota
Use
collect(Collectors.joining())
para concatenar as palavras.
Saída Esperada:
bananacherry
Tarefa 5:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); //write your code here } }
Utilize a API Stream para encontrar a soma dos quadrados dos números pares na lista.
Nota
Utilize
mapToInt
em vez demap
para ter acesso ao método terminalsum
.
Saída Esperada:
220
Tarefa 6:
Entrada:
main.java
1234567891011package com.example; import java.util.Arrays; import java.util.List; public class Main { public static void main(String[] args) { List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry"); //write your code here } }
Utilize a API Stream para agrupar palavras de acordo com seus tamanhos e coletar o resultado em um Map.
Nota
Você pode usar collect(Collectors.groupingBy(e -> e.length())) para coletar o stream em um Map.
Saída esperada:
{4=[data], 5=[maçã], 6=[banana, cereja], 10=[amora-preta]}
Bom trabalho!
Se você completou todas as tarefas, muito bem!
Esses problemas podem ser resolvidos não apenas pelos métodos que eu forneci no bloco de soluções. Você pode resolvê-los da maneira que for mais conveniente para você. Talvez escrever métodos separados e usá-los no método map()
, ou talvez nem utilizar a API Stream.
Você deve ter notado que alguns métodos das tarefas não foram abordados anteriormente. Nessas situações, vale a pena abrir o IntelliJ IDEA e explorar como essas tarefas podem ser realizadas usando diferentes métodos. Se tiver dúvidas sobre os métodos ou precisar de informações adicionais, sinta-se à vontade para perguntar no Chat da Comunidade, onde outros usuários ou autores do curso podem ajudar.
Na programação, o aprendizado nunca termina, e descobrir novas maneiras de resolver diversos problemas é parte da jornada. Não hesite em explorar a internet para encontrar novas informações ou ler a documentação onde todos os métodos são descritos. Boa sorte!
Obrigado pelo seu feedback!