1
resposta

[Projeto] .

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'}
        */
    }
}
1 resposta

Olá, Eleazar! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de Streams em Java para transformar e filtrar coleções, utilizou muito bem o filter() combinado com map() e collect() para produzir resultados eficientes e ainda compreendeu a importância do distinct() e sorted() para limpeza e organização dos dados.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!