Usando o Java 8 Predicado

Crie uma pregação Java 8, é uma das operações que faremos mais quando trabalharmos com expressões lambda e fluxos em Java 8. O que é um predicado? , Um predicado é uma interface funcional que define uma condição de que um determinado objeto deve cumprir. Por exemplo, é uma pessoa mais de 20 anos de idade ?.

Java 8 predicado impl

O predicado tem um único método chamado Teste que recebe o objeto e verifica se ele atende à condição. Vamos construir o exemplo, apoiando-nos na classe Pessoa.

package com.arquitecturajava;public class Persona {private String nombre;private String apellidos;private int edad;public String getNombre() {return nombre;}public void setNombre(String nombre) {this.nombre = nombre;}public Persona(String nombre, String apellidos, int edad) {super();this.nombre = nombre;this.apellidos = apellidos;this.edad = edad;}public String getApellidos() {return apellidos;}public void setApellidos(String apellidos) {this.apellidos = apellidos;}public int getEdad() {return edad;}public void setEdad(int edad) {this.edad = edad;}}

Vamos construir uma lista de pessoas para mais tarde aplicar um predicado sobre isso .

public class Principal {public static void main(String args) {List<Persona> lista = new ArrayList<>();Persona p1 = new Persona("pepe", "perez", 20);Persona p2 = new Persona("angel", "sanchez", 30);Persona p3 = new Persona("pepe", "blanco", 40);lista.add(p1);lista.add(p2);lista.add(p3);}}

Finalmente, irá converter a lista em um fluxo de dados e vamos percorrê-lo:

lista.stream().forEach(new Consumer<Persona>() {@Overridepublic void accept(Persona p) {System.out.println(p.getNombre());}});

o resultado será

Pepe
anjo
Pepe

Java 8 pregar

temos viajado a lista, vamos criar um predicado que é responsável por definir uma condição que permite filtrar a lista.

Predicate<Persona> predicadoNombre = new Predicate<Persona>() {@Override public boolean test(Persona p) { return p.getNombre().equals("pepe"); }};

neste caso que acabamos de criar um predicado que só vai conhecer pessoas que são chamados de “pepe”. Usamos o nível de Filtro Uma função Stream para passar este objeto pregado e força que ele é filtrado com base na condição de que o predicado define.

 lista.stream().filter(predicadoNombre).forEach(p -> System.out.println(p.getApellidos()));

o resultado na tela será:
java8predicatefilter

java8predicatefilter

O fluxo foi suportado pelo predicado para filtrar e ficar com pessoas que são chamadas de “Pepe”. Lembre-se que as interfaces funcionais podem ser vistas como expressões lambda e sua gestão é mais simples.

Java 8 predicado lambda

É hora de converter nossa Java 8 pregando uma expressão lambda para a clareza ganho:

lista.stream().filter(p -> p.getNombre().equals("pepe")).forEach(p -> System.out.println(p.getApellidos()));

O resultado será idêntico:

Java8PredicateFilter

Java8PredicateFilter

Java 8 predicados são Inponscindiable

Outros artigos relacionados: Java Lambda Java Streams

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *