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!