**Exercício 1: **
package streams;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Filter {
public static void main(String[] args) {
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> numerosPares = numeros.stream()
.filter(numero -> numero % 2 == 0)
.collect(Collectors.toList());
System.out.println("Numeros pares: " + numerosPares);
}
}
**Exercício 2: **
package streams;
import java.util.Arrays;
import java.util.List;
public class ToUpperCase {
public static void main(String[] args) {
List<String> palavras = Arrays.asList("java", "stream", "lambda");
palavras.stream()
.map(palavra -> palavra.toUpperCase())
.forEach(System.out::println);
}
}
**Exercício 3: **
package streams;
import java.util.Arrays;
import java.util.List;
public class FilterAndMult {
public static void main(String[] args) {
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6);
numeros.stream()
.filter(n -> n % 2 != 0)
.map(n -> n * 2)
.forEach(System.out::println);
}
}
**Exercício 4: **
package streams;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class Filter2 {
public static void main(String[] args) {
List<String> palavras = Arrays.asList("apple", "banana", "apple", "orange", "banana");
Set<String> palavrasSemRepeticao = palavras.stream()
.collect(Collectors.toSet());
palavrasSemRepeticao.forEach(System.out::println);
}
}
**Exercício 5: **
package streams;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FlatMap {
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> numerosPrimosEmOrdem = listaDeNumeros.stream()
.flatMap(List::stream)
.filter(FlatMap::ehPrimo)
.sorted()
.collect(Collectors.toList());
System.out.println(numerosPrimosEmOrdem);
}
private static boolean ehPrimo(int numero) {
if(numero < 2) return false;
for (int i = 2; i <= Math.sqrt(numero); i++) {
if (numero % i == 0) {
return false;
}
}
return true;
}
}
**Exercício 6: **
package streams.filter_sort;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class FilterAndSort {
public static void main(String[] args) {
List<Pessoa> pessoas = Arrays.asList(
new Pessoa("Alice", 22),
new Pessoa("Bob", 17),
new Pessoa("Charlie", 19)
);
List<Pessoa> pessoasDeMaior = pessoas.stream()
.filter(p -> p.getIdade()>=18)
.map(Pessoa::getNome)
.sorted()
.collect(Collectors.toList());
System.out.println(pessoasDeMaior);
}
}
**Exercício 7: **
Classe Produto + :
import java.util.List;
import java.util.stream.Collectors;
public class FilterAndSort2 {
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> produtosFiltrados = produtos.stream()
.filter(prod -> prod.getCategoria()=="Eletrônicos")
.filter(prod -> prod.getPreco() < 1000)
.sorted(Comparator.comparing(Produto::getPreco))
.collect(Collectors.toList());
System.out.println("Produtos filtrados: " + produtosFiltrados);
}
}
**Exercício 8: **
Código Anterior + :
List<Produto> eletronicosPromo = produtosFiltrados.stream()
.limit(3)
.collect(Collectors.toList());
System.out.println("Top 3 eletrônicos mais baratos: " + eletronicosPromo);
}
}