Estudo sobre Java 8 Stream.
Criou-se a classe Person, com os atributos name, age e gender, este último sendo um objeto da classe (enum) Gender.
A classe Info apresenta diversos métodos sobre uma lista de Person, permeados de lambda expressions.
- Java 8
- Gender.java
- Person.java
- Info.java
- Main.java
Todos os métodos manipulam uma lista de Person.
Os métodos em negrito fazem parte da API Stream, do Java 8.
Vale-se do método filter() para retornar apenas objetos da lista cujo atributo gender é FEMALE.
Utiliza o método sorted() para retornar a lista ascendentemente ordenada.
Aplica o método reversed() ao método sorted() para retornar a lista descendentemente ordenada.
Utiliza o método allMatch() para comparar se as idades de todos os objetos da lista são maiores que 10 (valor escolhido). Retorna um boolean.
Utiliza o método anyMatch() para comparar se algum objeto da lista apresenta o atributo age maior que 100 (valor escolhido). Retorna um boolean.
Utiliza o método noneMatch() para comparar se nenhum objeto da lista apresenta o atributo name igual a "Aliocha" (nome escolhido).
Utiliza o método max() para retornar o objeto da lista que apresenta o atributo age de maior valor.
Utiliza o método min() para retornar o objeto da lista que apresenta o atributo age de menor valor.
Utiliza o método groupingBy() para agrupar os objetos, de acordo com o atributo gender, em um Map<Gender, List>.
Utiliza os métodos filter(), max() e map(Person::getName) para retornar o nome do objeto de atributo gender FEMALE cujo atributo age é o maior da categoria.