Creați o predicare Java 8, este una dintre operațiile pe care le vom face cel mai mult când lucrăm cu lambda și expresiile curente în Java 8. Ce este un predicat? , Un predicat este o interfață funcțională care definește o condiție în care un anumit obiect trebuie să respecte. De exemplu, este o persoană de peste 20 de ani?.
predicatul are o singură metodă numită test care primește obiectul și verificările dacă îndeplinește condiția. Vom construi, de exemplu, prin sprijinirea noastră în clasa persoanei.
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;}}
Suntem să construim o listă de oameni pentru a aplica mai târziu un predicat despre 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);}}
În cele din urmă vom converti lista într-un flux de date și vom călători:
lista.stream().forEach(new Consumer<Persona>() {@Overridepublic void accept(Persona p) {System.out.println(p.getNombre());}});
Rezultatul va fi
pepe
Angel
PEPE
Java 8 Preoch
Am călătorit lista, vom face Creați un predicat care este responsabil pentru definirea unei afecțiuni care permite filtrarea listei.
DIV ID = „EC8B2DBD8C”>
În acest caz, tocmai am creat un predicat care să întâlnească numai persoanele care se numesc „pepe”. Folosim filtrul Un nivel de flux de funcții pentru a trece acest obiect predicat și forțați că este filtrat pe baza condiției ca predicatul să definească.
DIV ID = „30BF6E5D86″>
Rezultatul de pe ecran va fi:
fluxul a fost susținut de predicatul pentru a filtra și a rămâne cu oameni numiți „Pepe”. Amintiți-vă că interfețele funcționale pot fi văzute ca expresii lambda și managementul lor este mai simplu.
este timpul de conversie Java 8 predicând o expresie lambda pentru a câștiga claritate:
lista.stream().filter(p -> p.getNombre().equals("pepe")).forEach(p -> System.out.println(p.getApellidos()));
Rezultatul va fi identic:
Lambda Java Streams