lambda - java8 Un objet est disposé dans l'ordre d'un certain champ dans l'objet
欧阳克
欧阳克 2017-06-23 09:13:33
0
3
972

Par exemple, je veux avoir une classe User
Les attributs qu'elle contient sont comme ceciprivate int age,private String name
Il y a plusieurs objets

User user1 = new User(21,"张三") User user2 = new User(25,"李四") User user3 = new User(22,"王五") List list = new ArrayList(); list.add(user1) add(user2) add(user3)

Maintenant, je veux le trier par ordre croissant d'âge, c'est-à-dire que le résultat final d'affichage de lisr est user1 user3 user2
Comment l'écrire en utilisant l'expression lambda de java8 ?

Il s'agit d'une classe similaire à l'utilisateur. La comparaison de la valeur de comptage à l'intérieur peut réaliser la fonction, mais pourquoi le code entre parenthèses est-il gris ?
Déplacez la souris vers le haut. RapportCan be replaced with Comparator.comparingInt more... (Ctrl+F1)

欧阳克
欧阳克

温故而知新,可以为师矣。 博客:www.ouyangke.com

répondre à tous (3)
三叔

Celui de l'étage n'est pas convivial. La méthode suivante est plus déclarative, pas l'ancien style impératif

.
List newList = list.stream().sorted(Comparator.comparing(User::getAge)) .collect(Collectors.toList());

N'est-il pas plus facile de lire comme ça ? J'ai créé un comparateur basé surUserage属性进行个排序,属性是int就按照int排序,其实Comparator.comparing(User::getAge)La valeur par défaut est l'ordre croissant... Si vous voulez l'ordre décroissant... inversez-le

.
List newList = list.stream().sorted(Comparator.comparing(User::getAge).reversed()) .collect(Collectors.toList());

C'est très confortable...haha

    ringa_lee

    Arrays.sort(list, (user1 , user2) -> Integer.compare(v1.age, v2.age));

      typecho

      À mon avis, vous devriez implémenter l'interface Comparable, puis appeler directement le tri

        Derniers téléchargements
        Plus>
        effets Web
        Code source du site Web
        Matériel du site Web
        Modèle frontal
        À propos de nous Clause de non-responsabilité Sitemap
        Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!