Usando Java 8 predicado

Crear unha predicación de Java 8, é unha das operacións que máis faremos cando traballamos con Expresións de Lambda e fluxos en Java 8. Que é un predicado? , Un predicado é unha interface funcional que define unha condición de que un determinado obxecto debe cumprir. Por exemplo, é unha persoa con máis de 20 anos de idade? que recibe o obxecto e comprobacións se cumpre a condición. Imos construír en exemplo, apoiándonos na clase da persoa.

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;}}

imos construír unha lista de persoas para máis tarde aplicar un predicado sobre el .

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 converteremos a lista nun fluxo de datos e imos percorrer:

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

O resultado será

Pepe
Angel
Pepe

Java 8 Predic

Viaxamos a lista, imos Crear un predicado responsable da definición dunha condición que permita filtrar a lista.

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

Neste caso acaba de crear un predicado que só coñecerá ás persoas que Chámase “Pepe”. Usamos o filtro Un nivel de transmisión de función para aprobar este obxecto predicado e forzar que se filtra en función da condición de que o predicado define.

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

O resultado da pantalla será:
java8predicateFilter

java8predicatefilfilter

A transmisión foi apoiada polo predicado para filtrar e quedar con persoas que se chaman “Pepe”. Lembre que as interfaces funcionais poden verse como expresións lambda ea súa xestión é máis sinxela.

Java 8 predicado lambda

é hora de converter O noso Java 8 Predicando unha expresión lambda para obter claridade:

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

O resultado será idéntico:

Java8predicateFilter

Java 8 predicates son inPonscindiable

Outros Artigos relacionados: Java Lambda Java Streams

Deixa unha resposta

O teu enderezo electrónico non se publicará Os campos obrigatorios están marcados con *