Usando il predicato Java 8

Crea una predicazione Java 8, è una delle operazioni che faremo di più quando lavoriamo con le espressioni di Lambda e Streams in Java 8. Che cos’è un predicato? , Un predicato è un’interfaccia funzionale che definisce una condizione che un determinato oggetto deve essere conforme. Ad esempio, è una persona oltre 20 anni?

Java 8 Predicati implicatore

Il predicato ha un singolo metodo chiamato Test che riceve l’oggetto e i controlli se soddisfa la condizione. Andremo per costruire l’esempio supportandoci nella classe della persona.

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

Costruiremo un elenco di persone per poi applicare un predicato a riguardo .

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

Infine convertiremo l’elenco in un flusso di dati e viaggeremo:

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

Il risultato sarà

pepe
angel
Pepe

java 8 predica

Abbiamo viaggiato la lista, lo faremo Creare un predicato che è responsabile della definizione di una condizione che consente di filtrare l’elenco.

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

In questo caso abbiamo appena creato un predicato che soddisferà solo persone che sono chiamati “pepe”. Utilizziamo il filtro un livello di flusso di funzione per passare questo oggetto predicato e forza che viene filtrato in base alla condizione che il predicato definisce.

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

Il risultato sullo schermo sarà:
java8predicatefilter

java8predicatefilter

Il flusso è stato supportato dal predicato per filtrare e stare con le persone che sono chiamate “pepe”. Ricordiamo che le interfacce funzionali possono essere viste come espressioni lambda e la loro gestione è più semplice.

java 8 predicato lambda

è il momento di convertire La nostra Java 8 predicando un’espressione di lambda per ottenere chiarezza:

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

Il risultato sarà identico:

Java8predicatefilter

java 8 predicati sono inponcendidable

altri articoli correlati: Java Lambda Java Streams

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *