Maison  >  Article  >  Java  >  Comment la méthode « Collectors.groupingBy » de Java 8 peut-elle regrouper efficacement les objets par attribut ?

Comment la méthode « Collectors.groupingBy » de Java 8 peut-elle regrouper efficacement les objets par attribut ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 15:59:02495parcourir

How Can Java 8's `Collectors.groupingBy` Method Efficiently Group Objects by Attribute?

Regroupement d'objets par attribut

Considérez un scénario dans lequel vous avez une liste d'objets et devez les organiser en fonction d'un attribut spécifique. Prenez, par exemple, une liste d'étudiants que vous souhaitez regrouper en fonction de leur localisation.

Dans ce cas, vous pourriez avoir une liste d'étudiants comme suit :

public class Grouping {
    public static void main(String[] args) {

        List<Student> studlist = new ArrayList<Student>();
        studlist.add(new Student("1726", "John", "New York"));
        studlist.add(new Student("4321", "Max", "California"));
        studlist.add(new Student("2234", "Andrew", "Los Angeles"));
        studlist.add(new Student("5223", "Michael", "New York"));
        studlist.add(new Student("7765", "Sam", "California"));
        studlist.add(new Student("3442", "Mark", "New York"));

    }
}

class Student {
    String stud_id;
    String stud_name;
    String stud_location;

    Student(String sid, String sname, String slocation) {
        this.stud_id = sid;
        this.stud_name = sname;
        this.stud_location = slocation;
    }
}

Pour regroupez ces étudiants en fonction de leur emplacement, vous pouvez utiliser la méthode Collectors.groupingBy de Java 8, comme démontré ci-dessous :

    Map<String, List<Student>> studlistGrouped = studlist.stream()
                                                    .collect(Collectors.groupingBy(w -> w.stud_location));

Cette ligne de code regroupe les étudiants de la liste des étudiants par leur attribut stud_location, ce qui donne une carte où les clés sont des emplacements (par exemple, "New York") et les valeurs correspondantes sont des listes d'étudiants qui appartiennent à ces emplacements.

Cette approche fournit un moyen concis et efficace de regrouper les objets en fonction d'un attribut spécifié, vous aidant ainsi à organiser et analyser les données efficacement.

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:
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