Maison  >  Article  >  Java  >  Exemple simple d'expression Lambda et de classe Stream en Java

Exemple simple d'expression Lambda et de classe Stream en Java

黄舟
黄舟original
2017-01-17 15:14:071279parcourir

Poser une question

Comment utiliser les expressions lambda et Stream de Java ? ? ?

Résoudre le problème

La syntaxe de l'expression Lambda

Syntaxe de base :

[code](parameters) -> expression
或
(parameters) ->{ statements; }

Regardez les exemples pour apprendre !

Exemple 1 : Définir une classe AyPerson pour préparer les tests ultérieurs.

[code]package com.evada.de;

import java.util.Arrays;
import java.util.List;

class AyPerson{

    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public AyPerson(String id, String name) {
        this.id = id;
        this.name = name;
    }
}

/**
 * Created by Ay on 2016/5/9.
 */
public class LambdaTest {

    public static void main(String[] args) {
        List<String> names = Arrays.asList("Ay", "Al", "Xy", "Xl");
        names.forEach((name) -> System.out.println(name + ";"));
    }
}

L'exemple ci-dessus names.forEach((name) -> System.out.println(name «;»)

est similaire à :

function(name){//name为参数 

System.out.println(name + “;”);//方法体 

}
Résultat :
[code]Ay;
Al;
Xy;
Xl;
Exemple 2 : Copiez le code suivant dans la fonction principale ci-dessus

[code]List<Student> personList = new ArrayList<>();
personList.add(new Student("00001","Ay"));
personList.add(new Student("00002","Al"));
personList.add(new Student("00003","To"));
personList.forEach((person) -> System.out.println(person.getId()+ ":" + person.getName()));
Résultat :

[code]00001:Ay
00002:Al
00003:To
Exemple 3 : Lambda Et méthode f**ilter()** dans la classe Stream

[code]List<AyPerson> personList = new ArrayList<>();
    personList.add(new AyPerson("00001","Ay"));
    personList.add(new AyPerson("00002","Al"));
    personList.add(new AyPerson("00003", "To"));
    //stream类中的filter方法
    personList.stream()
            //过滤集合中person的id为00001
            .filter((person) -> person.getId().equals("00001"))
            //将过滤后的结果循环打印出来
            .forEach((person) -> System.out.println(person.getId() + ":" + person.getName()));
Résultat :

[code]00001:Ay
Exemple 4 : méthode collect() dans la classe Stream,

[code]    List<AyPerson> personList = new ArrayList<>();
    List<AyPerson> newPersonList = null;

    personList.add(new AyPerson("00001","Ay"));
    personList.add(new AyPerson("00002","Al"));
    personList.add(new AyPerson("00003", "To"));
    //将过滤后的结果返回到一个新的List中
    newPersonList = personList.stream()
            .filter((person) -> person.getId().equals("00002")).collect(Collectors.toList());
    //打印结果集
    newPersonList.forEach((person) -> System.out.println(person.getId() + ":" + person.getName()));

En plus d'être placé dans Liste, il peut également être placé dans Set, etc...
Résultat :
[code]00002:Al

Stream Il existe de nombreuses méthodes utiles qui peuvent être utilisées, telles que le comptage, la limite, etc. Vous pouvez accéder à l'API pour apprendre par vous-même

Ce qui précède sont les expressions Lambda et le contenu d'exemples simples de la classe Stream. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn