java數(shù)據(jù)流分組操作如何做

小樊
114
2024-06-27 22:43:32

在Java中,可以使用流操作來(lái)對(duì)數(shù)據(jù)進(jìn)行分組。一種常見(jiàn)的方法是使用Collectors.groupingBy()方法來(lái)對(duì)數(shù)據(jù)流進(jìn)行分組操作。示例如下:

假設(shè)有一個(gè)包含Person對(duì)象的數(shù)據(jù)流,每個(gè)Person對(duì)象有一個(gè)age屬性,現(xiàn)在想要將數(shù)據(jù)流按照age屬性進(jìn)行分組操作,可以使用以下代碼:

List<Person> personList = Arrays.asList(
        new Person("Alice", 25),
        new Person("Bob", 30),
        new Person("Cathy", 25),
        new Person("David", 40)
);

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

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

在上面的示例中,使用Collectors.groupingBy()方法將Person對(duì)象按照age屬性進(jìn)行分組操作,得到了一個(gè)Map<Integer, List>,其中key是age屬性,value是對(duì)應(yīng)的Person列表。然后遍歷Map,打印出每個(gè)age對(duì)應(yīng)的Person列表。

0