Praticando com Stream API
É hora de praticar com a Stream API. Você terá algumas tarefas simples envolvendo o uso de diversos métodos da Stream API. Desta vez, não serão fornecidas tarefas específicas. Em vez disso, será apresentada uma lista para trabalhar e qual deve 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 a desenvolver a habilidade de alcançar resultados sem uma especificação clara. Você verá apenas os dados de entrada e o resultado esperado.
É necessário utilizar a Stream API para realizar essas tarefas!
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 Stream API 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]
Utilize os métodos map() e toList() neste caso.
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);
List<Integer> result = numbers.stream().map(e -> e * e).toList();
System.out.println(result);
// Write your code here
}
}
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 Stream API para encontrar o comprimento do nome mais longo na lista. Saída Esperada:
7
Utilize os métodos intermediários map() e max(), e o método terminal get().
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");
Integer result = names
.stream()
.map(e -> e.length())
.max((integer, newInteger) -> Integer.compare(integer, newInteger))
.get();
System.out.println(result);
// Write your code here
}
}
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 Stream API para contar o número total de palavras distintas (ignorando maiúsculas e minúsculas) em todas as sentenças. Saída Esperada:
37
Utilize os métodos intermediários flatMap() e distinct(), e o método terminal count().
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."
);
long count = sentences.stream()
.flatMap(e -> Arrays.stream(e.split(" ")))
.distinct()
.count();
System.out.println(count);
// Write your code here
}
}
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 Stream API para encontrar a concatenação das duas primeiras palavras que possuem comprimentos pares.
Saída Esperada:
bananacherry
Utilize os métodos intermediários filter() e limit(), e o método terminal collect().
package com.example;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
String result = words.stream()
.filter(e -> e.length() % 2 == 0)
.limit(2)
.collect(Collectors.joining());
System.out.println(result);
// Write your code here
}
}
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 Stream API para encontrar a soma dos quadrados dos números pares na lista.
Saída Esperada:
220
Utilize os métodos intermediários mapToInt() e filter(), e o método terminal sum().
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);
int sum = numbers.stream()
.mapToInt(e -> e * e)
.filter(e -> e % 2 == 0)
.sum();
System.out.println(sum);
// Write your code here
}
}
Bom trabalho!
Se todas as tarefas foram concluídas, parabéns!
Alguns métodos nas tarefas podem não ter sido abordados anteriormente. Para explorá-los, abra o IntelliJ IDEA e verifique sua funcionalidade.
Programação envolve aprendizado contínuo, portanto, explore novas soluções, pesquise online e consulte a documentação sempre que necessário.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Incrível!
Completion taxa melhorada para 4
Praticando com Stream API
Deslize para mostrar o menu
É hora de praticar com a Stream API. Você terá algumas tarefas simples envolvendo o uso de diversos métodos da Stream API. Desta vez, não serão fornecidas tarefas específicas. Em vez disso, será apresentada uma lista para trabalhar e qual deve 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 a desenvolver a habilidade de alcançar resultados sem uma especificação clara. Você verá apenas os dados de entrada e o resultado esperado.
É necessário utilizar a Stream API para realizar essas tarefas!
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 Stream API 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]
Utilize os métodos map() e toList() neste caso.
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);
List<Integer> result = numbers.stream().map(e -> e * e).toList();
System.out.println(result);
// Write your code here
}
}
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 Stream API para encontrar o comprimento do nome mais longo na lista. Saída Esperada:
7
Utilize os métodos intermediários map() e max(), e o método terminal get().
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");
Integer result = names
.stream()
.map(e -> e.length())
.max((integer, newInteger) -> Integer.compare(integer, newInteger))
.get();
System.out.println(result);
// Write your code here
}
}
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 Stream API para contar o número total de palavras distintas (ignorando maiúsculas e minúsculas) em todas as sentenças. Saída Esperada:
37
Utilize os métodos intermediários flatMap() e distinct(), e o método terminal count().
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."
);
long count = sentences.stream()
.flatMap(e -> Arrays.stream(e.split(" ")))
.distinct()
.count();
System.out.println(count);
// Write your code here
}
}
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 Stream API para encontrar a concatenação das duas primeiras palavras que possuem comprimentos pares.
Saída Esperada:
bananacherry
Utilize os métodos intermediários filter() e limit(), e o método terminal collect().
package com.example;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<String> words = Arrays.asList("apple", "banana", "cherry", "date", "elderberry");
String result = words.stream()
.filter(e -> e.length() % 2 == 0)
.limit(2)
.collect(Collectors.joining());
System.out.println(result);
// Write your code here
}
}
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 Stream API para encontrar a soma dos quadrados dos números pares na lista.
Saída Esperada:
220
Utilize os métodos intermediários mapToInt() e filter(), e o método terminal sum().
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);
int sum = numbers.stream()
.mapToInt(e -> e * e)
.filter(e -> e % 2 == 0)
.sum();
System.out.println(sum);
// Write your code here
}
}
Bom trabalho!
Se todas as tarefas foram concluídas, parabéns!
Alguns métodos nas tarefas podem não ter sido abordados anteriormente. Para explorá-los, abra o IntelliJ IDEA e verifique sua funcionalidade.
Programação envolve aprendizado contínuo, portanto, explore novas soluções, pesquise online e consulte a documentação sempre que necessário.
Obrigado pelo seu feedback!