从一个sql数据库,我正在读取具有2个字段的表:appName,用户。所以我可能会看到:

+-------------+
| appA | John |
+-------------+
| appB | Mary |
+-------------+
| appC | Tom  |
+-------------+
| appA | John |
+-------------+
| appA | Mary |
+-------------+


这些记录中的每一个都存储为具有appName和user的AppClass对象。
现在,我想列出不同用户运行这些应用程序的次数。因此:

+-----------------+
| appA | John | 2 |
+-----------------+
| appA | Mary | 1 |
+-----------------+
| appB | Mary | 1 |
+-----------------+
| appC | Tom  | 1 |
+-----------------+


是否可以使用带有2个键的HashMap进行计数?

最佳答案

是的,您可以具有以下结构:

Map<String, Map<String, Integer>>
       ^           ^       ^
       appName    user    count


但是,如果您直接从数据库中获取聚合数据,则将容易得多:

SELECT appName, user, COUNT(*)
FROM table
GROUP BY appName, user;

10-04 15:50