1 - Dada a lista de números inteiros abaixo, filtre apenas os números pares e imprima-os
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);
// Filtrando e imprimindo os números pares
numeros.stream()
.filter(numero -> numero % 2 == 0) // Filtra apenas números pares
.forEach(System.out::println); // Imprime cada número par
}
}
2. Converter strings para maiúsculas java
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> palavras = Arrays.asList("java", "stream", "lambda");
// Convertendo para maiúsculas e imprimindo
palavras.stream()
.map(String::toUpperCase) // Converte cada string para maiúsculas
.forEach(System.out::println); // Imprime cada string convertida
}
}
3. Filtrar números ímpares, multiplicar por 2 e coletar em nova lista
java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> resultado = numeros.stream()
.filter(n -> n % 2 != 0) // Filtra ímpares
.map(n -> n * 2) // Multiplica por 2
.collect(Collectors.toList());
System.out.println(resultado); // [2, 6, 10]
}
}
4. Remover duplicatas e imprimir
java
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<String> palavras = Arrays.asList("apple", "banana", "apple", "orange", "banana");
palavras.stream()
.distinct() // Remove duplicatas
.forEach(System.out::println); // apple, banana, orange
}
}
5. Extrair números primos e ordenar java
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<List<Integer>> listaDeNumeros = Arrays.asList(
Arrays.asList(1, 2, 3, 4),
Arrays.asList(5, 6, 7, 8),
Arrays.asList(9, 10, 11, 12)
);
List<Integer> primos = listaDeNumeros.stream()
.flatMap(List::stream) // Achata as sublistas
.filter(Main::isPrimo) // Filtra primos
.sorted() // Ordena
.collect(Collectors.toList());
System.out.println(primos); // [2, 3, 5, 7, 11]
}
private static boolean isPrimo(int n) {
if (n <= 1) return false;
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) return false;
}
return true;
}
}
6. Filtrar pessoas >18 anos e ordenar nomes java
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Pessoa> pessoas = Arrays.asList(
new Pessoa("Alice", 22),
new Pessoa("Bob", 17),
new Pessoa("Charlie", 19)
);
pessoas.stream()
.filter(p -> p.getIdade() > 18) // Filtra por idade
.map(Pessoa::getNome) // Extrai nomes
.sorted() // Ordena alfabeticamente
.forEach(System.out::println); // Alice, Charlie
}
}
7. Filtrar eletrônicos < R$1000 e ordenar
java
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<Produto> produtos = Arrays.asList(
new Produto("Smartphone", 800.0, "Eletrônicos"),
new Produto("Notebook", 1500.0, "Eletrônicos"),
new Produto("Teclado", 200.0, "Eletrônicos"),
new Produto("Cadeira", 300.0, "Móveis"),
new Produto("Monitor", 900.0, "Eletrônicos"),
new Produto("Mesa", 700.0, "Móveis")
);
List<Produto> resultado = produtos.stream()
.filter(p -> p.getCategoria().equals("Eletrônicos"))
.filter(p -> p.getPreco() < 1000)
.sorted(Comparator.comparing(Produto::getPreco))
.collect(Collectors.toList());
resultado.forEach(System.out::println);
/* Saída:
Produto{nome='Teclado', preco=200.0, categoria='Eletrônicos'}
Produto{nome='Smartphone', preco=800.0, categoria='Eletrônicos'}
Produto{nome='Monitor', preco=900.0, categoria='Eletrônicos'}
*/
}
}