溫馨提示×

java中stream groupby怎么使用

小億
756
2024-02-21 12:23:24
欄目: 編程語言

在Java中,使用Stream的groupBy方法可以對Stream中的元素進(jìn)行分組操作。groupBy方法接受一個Function作為參數(shù),該函數(shù)用于提取元素的鍵值,并返回一個Map對象,其中鍵是分組的值,值是屬于該分組的元素列表。

示例如下:

假設(shè)有一個包含Person對象的List,每個Person對象有一個age屬性,我們想按照age屬性進(jìn)行分組:

List<Person> persons = Arrays.asList(
    new Person("Alice", 25),
    new Person("Bob", 30),
    new Person("Charlie", 25),
    new Person("David", 30)
);

Map<Integer, List<Person>> groupedByAge = persons.stream()
    .collect(Collectors.groupingBy(Person::getAge));

groupedByAge.forEach((age, people) -> {
    System.out.println("Age " + age + ": " + people);
});

在這個例子中,我們首先使用stream方法將List轉(zhuǎn)換為Stream,然后使用collect方法和groupingBy方法進(jìn)行分組操作。最后,我們通過forEach方法遍歷每個分組,并輸出結(jié)果。

注意:在上面的例子中,Person類需要實(shí)現(xiàn)一個getAge方法來獲取年齡屬性。

0