>Java >java지도 시간 >스트림을 사용하여 속성별로 Java 개체를 그룹화하는 방법은 무엇입니까?

스트림을 사용하여 속성별로 Java 개체를 그룹화하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-18 05:33:02429검색

How to Group Java Objects by Attributes Using Streams?

Java 스트림을 사용하여 속성별로 객체 그룹화

말씀하신 대로 "위치"라는 속성을 기준으로 객체 목록을 그룹화하려고 합니다. 다음은 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;
        }
    }
}

이 프로그램은 Streams API의 Collectors.groupingBy() 메서드를 사용하여 학생들을 위치별로 그룹화합니다. 결과 맵(studlistGrouped)에는 ​​위치인 키와 해당 위치에 있는 학생 목록인 값이 포함되어 있습니다.

위 내용은 스트림을 사용하여 속성별로 Java 개체를 그룹화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.