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

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

Susan Sarandon
Libérer: 2024-11-18 05:33:02
original
444 Les gens l'ont consulté

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;
        }
    }
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal