Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Prática de Transmissão | enum e Stream API
Estruturas de Dados em Java

bookPrá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

main.java

copy
1234567891011
package 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

main.java

copy
1234567891011
package 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

main.java

copy
123456789101112131415
package 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

main.java

copy
1234567891011
package 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

main.java

copy
1234567891011
package 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 de map para ter acesso ao método terminal sum.

Saída Esperada:

220

Tarefa 6:

Entrada:

main.java

main.java

copy
1234567891011
package 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!

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 5

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 4

bookPrá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

main.java

copy
1234567891011
package 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

main.java

copy
1234567891011
package 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

main.java

copy
123456789101112131415
package 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

main.java

copy
1234567891011
package 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

main.java

copy
1234567891011
package 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 de map para ter acesso ao método terminal sum.

Saída Esperada:

220

Tarefa 6:

Entrada:

main.java

main.java

copy
1234567891011
package 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!

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 5
some-alt