Java

Java中stream group的用法是什么

小亿
901
2024-01-13 21:06:01
栏目: 编程语言

在Java中,Stream的group操作用于将元素按照指定的条件进行分组。它是一个终端操作,返回一个由分组结果组成的Map对象。group操作接受一个Function对象作为参数,该函数用于根据元素的某个属性或条件来生成分组的键。然后,它将Stream中的元素根据生成的键进行分组,并将结果放入Map中。

下面是group操作的示例代码:

List<String> names = Arrays.asList("John", "Mary", "Jane", "John", "Jane");

// 根据名字的首字母进行分组
Map<Character, List<String>> groupByFirstChar = names.stream()
        .collect(Collectors.groupingBy(name -> name.charAt(0)));

System.out.println(groupByFirstChar);

输出结果为:

{J=[John, Jane, John, Jane], M=[Mary]}

在上面的示例中,我们将一个字符串列表按照名字的首字母进行了分组。groupingBy方法接受一个Function对象,该函数定义了如何生成分组的键。在这里,我们使用了name.charAt(0)来获取名字的首字母作为键。groupingBy方法返回一个由分组结果组成的Map对象,其中键是分组的键,值是对应的元素列表。

需要注意的是,group操作返回的Map中的值是一个List对象,其中包含了与给定键相对应的所有元素。如果希望对分组结果进行进一步的处理,可以使用其他Stream操作来操作这些List。

0
看了该问题的人还看了