1
resposta

Filtrando cursos com mais de 50 alunos

package exercicio;

import java.util.ArrayList; import java.util.Comparator; import java.util.List;

public class Curso {

private String nome;
private int alunos;

public Curso(String nome, int alunos) {
    this.nome = nome;
    this.alunos = alunos;
}

public String getNome() {
    return nome;
}

public int getAlunos() {
    return alunos;
}

public static void main(String[] args) {
    List<Curso> cursos = new ArrayList<Curso>();
    cursos.add(new Curso("Python", 45));
    cursos.add(new Curso("JavaScript", 150));
    cursos.add(new Curso("Java 8", 113));
    cursos.add(new Curso("C", 55));

    cursos.sort(Comparator.comparing(Curso::getAlunos));
    cursos.sort(Comparator.comparing(s -> s.getAlunos()));

    cursos.stream().filter(s->s.getAlunos()>50).forEach(s->System.out.println(s.getNome()));

}

}

1 resposta

Olá Cleiton, tudo certo?

Peço desculpas pela demora em obter retorno.

Muito legal sua solução! A API de streams que foi introduzida a partir do Java 8 veio para ficar e trazer esses aspectos da programação funcional para a linguagem, assim facilitando muito a leitura de códigos que antes precisávamos de muitas linhas para escrever, já encapsulados em métodos prontos para utilizarmos, e que aceitam expressões lambda e method references, que facilitam muito a escrita do código! Em um primeiro momento parece meio confuso, mas conforme vamos nos acostumando com suas utilizações, como escrever e ler códigos que usam dessa API, há uma melhora significativa na legibilidade dos nossos códigos - principalmente ao lidar com collections!.

Lembre-se que você pode sempre contar com o fórum para tirar suas dúvidas e compartilhar sua evolução, adoramos saber o que está estudando!

Um grande abraço e bons estudos!