Para todos os exemplos, podemos considerar as classes deste repositorio
Filter
O método filter é um método funcional bem interessante, com pode-se filtrar os elementos de uma lista. Imagine que voce possui uma lista de usuários, e nesta objeto usuario existe um atributo chamado idade.Para selecionar todos elementos daquela lista que sejam maiores de 18 anos, você pode usar o método filter, como mostrado abaixo:
List<Usuario> lista = new ArrayList<Usuario>(); lista.add(new Usuario(1,"Menor de idade",17)); lista.add(new Usuario(2,"Maior de idade", 19)); lista.add(new Usuario(3,"Idoso",70)); Stream<Usuario> maioresDeIdade = lista.stream() .filter(f -> f.getIdade()>=18);Da lista obtivemos uma Stream de usuários, que só contem os objetos de usuários onde o atributo idade for maior ou igual a 18. O filter retorna uma nova instância de stream contendo somente os elementos que obedecem a checagem lambida, que neste caso é se a idade é maior ou igual a 18.
Pode-se realizar múltiplas checagens dentro de um filter, como mostrado abaixo:
Stream<Usuario> maioresDeIdade = lista.stream() .filter(f -> f.getIdade()>=18 && nome.startsWith("D"));Checagens com and e or podem ser realizadas da mesma maneira que são feitas nos ifs.
Nenhum comentário:
Postar um comentário