Maison  >  Article  >  Java  >  Comment regrouper des objets Java par attributs à l'aide de flux ?

Comment regrouper des objets Java par attributs à l'aide de flux ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-18 05:33:02374parcourir

How to Group Java Objects by Attributes Using Streams?

Regroupement d'objets par attributs à l'aide de flux Java

Comme vous l'avez mentionné, vous souhaitez regrouper une liste d'objets par un attribut appelé « Emplacement ». Voici un moyen simple d'y parvenir en utilisant les flux de Java 8 :

import java.util.*;
import java.util.stream.Collectors;

public class Grouping {
    public static void main(String[] args) {
        List<Student> studlist = new ArrayList<>();
        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"));

        // Group the list by "Location" attribute using Streams
        Map<String, List<Student>> studlistGrouped =
                studlist.stream().collect(Collectors.groupingBy(w -> w.stud_location));

        // Print the results
        for (String location : studlistGrouped.keySet()) {
            System.out.println("Location: " + location);
            for (Student student : studlistGrouped.get(location)) {
                System.out.println("\t" + student.stud_id + " " + student.stud_name);
            }
        }
    }

    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;
        }
    }
}

Ce programme utilise la méthode Collectors.groupingBy() de l'API Streams pour regrouper les étudiants en fonction de leur emplacement. La carte résultante (studlistGrouped) contient des clés comme emplacements et des valeurs comme listes d'étudiants à cet emplacement.

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