Fácil de usar Java Lambda filtro de foreach
Lista de Java en la colección por el momento las condiciones de la consulta, a menudo piensa en el uso de bucle.
Desde la introducción de Java 8 Lambda, simplifica el uso del bucle.
Lambda ilustra un simple uso de la foreach y el filtro.
1, clase personalizada héroe
/ ** * Creado por milagro Luna en 03/08/2020 * / público de clase héroe { privado String nombre; privada país de cuerda; pública héroe (nombre String, String país) { este .name = nombre; este .country = país; } Pública getName String () { retorno nombre; } Pública vacío setName (String nombre) { este .name = nombre; } Pública getCountry String () { retorno país; } Pública vacío setCountry (únicamente String) { este .country = país; } @ Override pública Cadena toString () { retorno "héroe {" + "name = '" + nombre + '\'' + "país = '" + país + '\'' + '}' ; } }
2, bucle foreach
importación java.util.ArrayList; importación java.util.List; / ** * Creado por milagro Luna en 03/08/2020 * / público de clase LambdaForeachDemo { públicas estáticas void main (String [] args) { Lista <Hero> heroList = nuevo ArrayList <> (); Lista <Hero> resultList = nuevo ArrayList <> (); Liubei héroe = nuevo Hero ( "刘备", "蜀国" ); Guanyu héroe = nuevo Hero ( "关羽", "蜀国" );nuevo nuevo Hero ( "Zhang", "Shu" ); héroe Sunce = nuevo nuevo Hero ( "Sun Ce", "Wu" ); heroList.add (Liubei); heroList.add (Guanyu); heroList.add (Zhangfei) ; heroList.add (Sunce); // consulta no es un héroe Wu heroList.forEach (héroe -> { SI ( "Wu"! .equals (hero.getCountry ())) { resultList.add (héroe); } }); // imprimir los resultados establecidos resultList.forEach (héroe -> System.out.println (hero.toString ())); } }
3, el filtro de filtro
importación java.util.ArrayList; importación java.util.List; importación java.util.stream.Collectors; / ** * Creado por milagro Luna en 03/08/2020 * / público de clase LambdaFilterDemo { públicas estáticas void main (String [] args) { Lista <Hero> heroList = nuevo ArrayList <> (); Lista <Hero> resultList = nuevo ArrayList <> (); Liubei héroe = nuevo Hero ( "刘备", "蜀国" ); Héroe Guanyu = nuevo héroe ( "关羽", "蜀国" Zhangfei héroe = nuevo nuevo Hero ( "Zhang", "Shu" ); héroe Sunce = nuevo nuevo Hero ( "Sun Ce", "Wu" ); heroList.add (Liubei); heroList.add (Guanyu); heroList.add (Zhangfei); heroList.add (Sunce); // consulta no es un héroe Wu resultList = heroList.stream () (héroe .Filter ! -> "Wu" .equals (hero.getCountry ())) .collect ( Collectors.toList ()); // imprimir los resultados establece resultList.forEach (héroe -> System.out.println (hero.toString ())); } }
4, los resultados son los siguientes:
Héroe {name = 'Bei', país = 'Shu' } héroe {nombre = 'Guan', país = 'Shu' } héroe {nombre = 'Zhang', país = 'Shu'}