当前位置: 首页 > 知识库问答 >
问题:

我如何使用groupBy统计事件?

陶修洁
2023-03-14

我想将流中的项目收集到一个映射中,该映射将相等的对象分组在一起,并映射到出现的次数。

List<String> list = Arrays.asList("Hello", "Hello", "World");
Map<String, Long> wordToFrequency = // what goes here?

因此,在本例中,我希望地图由以下条目组成:

Hello -> 2
World -> 1

我该怎么做?

共有3个答案

包和泰
2023-03-14
List<String> list = new ArrayList<>();

list.add("Hello");
list.add("Hello");
list.add("World");

Map<String, List<String>> collect = list.stream()
                                        .collect(Collectors.groupingBy(o -> o));
collect.entrySet()
       .forEach(e -> System.out.println(e.getKey() + " - " + e.getValue().size()));
公孙令秋
2023-03-14

下面是对象列表的示例

Map<String, Long> requirementCountMap = requirements.stream().collect(Collectors.groupingBy(Requirement::getRequirementType, Collectors.counting()));
东方文林
2023-03-14

我想你只是在寻找过载,它需要另一个收集器来指定如何处理每个组。。。然后是收集器。计数()要进行计数:

import java.util.*;
import java.util.stream.*;

class Test {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        list.add("Hello");
        list.add("Hello");
        list.add("World");

        Map<String, Long> counted = list.stream()
            .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

        System.out.println(counted);
    }
}

结果:

{Hello=2, World=1}

(也有可能使用group pingByCon当前来提高效率。如果你的代码在你的上下文中是安全的,你需要记住一些东西。)

 类似资料:
  • 我有一个数据帧,并且我使用了从它到的几个列: 通过上面的方式,我几乎得到了我需要的表(数据帧)。缺少的是一个额外的列,该列包含每个组中的行数。换句话说,我有均值,但我也想知道有多少数字是用来得到这些均值的。例如,在第一组中有8个值,在第二组中有10个值,依此类推。

  • 本文向大家介绍pandas数据分组groupby()和统计函数agg()的使用,包括了pandas数据分组groupby()和统计函数agg()的使用的使用技巧和注意事项,需要的朋友参考一下 数据分组 使用 groupby() 方法进行分组 group.size()查看分组后每组的数量 group.groups 查看分组情况 group.get_group('名字') 根据分组后的名字选择分组数据

  • 本文向大家介绍laravel 使用事件系统统计浏览量的实现,包括了laravel 使用事件系统统计浏览量的实现的使用技巧和注意事项,需要的朋友参考一下 最近有一个商城项目中有统计商品点击量和艺术家访问量的需求,但又不想改动太多原来的代码,而点击与访问这两个动作是有明确触发点的,正好可以用laravel中的事件系统来做,在点击和访问对应的函数中产生这俩事件,监视器获取到之后,再将记录保存到数据库中,

  • 问题内容: 我有一个数据框,df并且从中使用了几列groupby: 通过以上方法,我几乎得到了所需的表(数据框)。缺少的是另外一列,其中包含每个组中的行数。换句话说,我有意思,但我也想知道有多少个数字被用来获得这些价值。例如,在第一组中有8个值,在第二组中有10个,依此类推。 简而言之:如何获取数据框的分组统计信息? 问题答案: 在·对象上,该·函数可以列出一个列表,以一次应用多种聚合方法。这应该

  • 6.8.1 概述 高级事件统计 与 (简单)事件统计均属于用户与网站的交互事件统计。 与简单事件统计相比,高级事件统计可统计更多维度、指标的数据, 常见场景如表单信息的统计,包括汽车预约试驾表单,化妆品的申领使用等。 6.8.2 对比 高级事件统计 与(简单)事件统计 对比 统计维度 统计指标 附属系统默认指标 高级事件统计 可统计至多20个维度 可统计至多20个指标 事件次数、事件唯一访问量、事

  • 问题内容: 我有以下形式的数据: 组内的非空值始终相同。我想对每个组(如果存在)的非空值进行一次计数,然后找到每个值的总数。 我目前正在以以下方式(笨拙和低效)进行此操作: 我敢肯定,有一种方法可以更干净地执行此操作,而无需使用循环,但是我似乎无法解决问题。任何帮助将非常感激。 问题答案: 我认为您可以使用: 的另一种解决方案,然后创建new by ,将其重塑为by和last :