Maison  >  Article  >  Java  >  Java utilise l'expression lambda pour trier un certain attribut de la collection d'objets List

Java utilise l'expression lambda pour trier un certain attribut de la collection d'objets List

王林
王林avant
2019-12-14 12:00:037737parcourir

Java utilise l'expression lambda pour trier un certain attribut de la collection d'objets List

Créez ici un nouvel objet UserInfo pour tester le tri des expressions lambda. Les propriétés sont les suivantes :

public class UserInfo {
    private int id;
    private int age;
    private String name;

    public UserInfo(int id, int age, String name) {
        this.id = id;
        this.age = age;
        this.name = name;
    }

    public int getId() {
        return id;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }测试

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

 Tutoriels vidéo associés recommandés : Java learning.

Commencez à créer des données et triez-les par ordre positif par âge pendant le test :

 public static void main(String[] args) {
        UserInfo user1 = new UserInfo(1, 20, "赵");
        UserInfo user2 = new UserInfo(2, 25, "钱");
        UserInfo user3 = new UserInfo(3, 23, "孙");
        UserInfo user4 = new UserInfo(7, 16, "李");
        UserInfo user5 = new UserInfo(6, 19, "周");
        UserInfo user6 = new UserInfo(5, 12, "吴");
        List<UserInfo> userInfoList = new ArrayList<>();
        userInfoList.add(user2);
        userInfoList.add(user1);
        userInfoList.add(user3);
        userInfoList.add(user4);
        userInfoList.add(user5);
        userInfoList.add(user6);
        //使用lambda表达式对age大小正序排序
        userInfoList = userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge))
        .collect(Collectors.toList());
        for (UserInfo userInfo : userInfoList) {
            System.out.println(userInfo.toString());
        }
    }

Les résultats de sortie sont les suivants :

Java utilise lexpression lambda pour trier un certain attribut de la collection dobjets List

Le test est trié dans l'ordre inverse par âge :

public static void main(String[] args) {
        UserInfo user1 = new UserInfo(1, 20, "赵");
        UserInfo user2 = new UserInfo(2, 25, "钱");
        UserInfo user3 = new UserInfo(3, 23, "孙");
        UserInfo user4 = new UserInfo(7, 16, "李");
        UserInfo user5 = new UserInfo(6, 19, "周");
        UserInfo user6 = new UserInfo(5, 12, "吴");
        List<UserInfo> userInfoList = new ArrayList<>();
        userInfoList.add(user2);
        userInfoList.add(user1);
        userInfoList.add(user3);
        userInfoList.add(user4);
        userInfoList.add(user5);
        userInfoList.add(user6);
           //使用lambda表达式对age大小倒序排序,发现就是多加了个reversed()方法
        userInfoList = userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge).
        reversed()).collect(Collectors.toList());
        for (UserInfo userInfo : userInfoList) {
            System.out.println(userInfo.toString());
        }
    }

Les résultats de sortie sont les suivants :

Java utilise lexpression lambda pour trier un certain attribut de la collection dobjets List

Pour résumer la méthode de tri :

1. Trier selon un certain champ dans un ordre positif :

userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge)).collect(Collectors.toList());

2 Trier dans l'ordre inverse selon un certain champ :

userInfoList.stream().sorted(Comparator.comparing(UserInfo::getAge).reversed()).collect(Collectors.toList());

Vous pouvez simplement sélectionner les paramètres ci-dessus en fonction de votre. entreprise.

Articles et tutoriels connexes recommandés : Commencer à apprendre Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer