Olá, Angel! Tudo bem?
Entendo sua frustração e é totalmente válido querer exemplos mais claros e diretos, especialmente quando se trata de tópicos complexos como lambdas e streams no Java.
Vou te ajudar com um exemplo prático sobre como você pode lidar com a questão dos números primos, que parece ser um ponto de dificuldade.
Para identificar números primos, você pode criar um método auxiliar que verifica se um número é primo. Depois, você pode usar esse método em conjunto com as streams para filtrar os números primos. Aqui está um exemplo de como você pode fazer isso:
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> numerosPrimos = listaDeNumeros.stream()
.flatMap(List::stream)
.filter(Main::isPrime)
.sorted()
.collect(Collectors.toList());
System.out.println(numerosPrimos);
}
public static boolean isPrime(int number) {
if (number <= 1) return false;
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) return false;
}
return true;
}
}
Neste exemplo, o método isPrime verifica se um número é primo. Usamos flatMap para transformar a lista de listas em uma única stream de números, filter para aplicar o filtro de primos, e sorted para ordenar os números primos resultantes.
Espero que esse exemplo ajude a esclarecer um pouco mais sobre como trabalhar com streams e métodos auxiliares para resolver problemas específicos. Bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.