java - 如何获取列表中数字出现的频率

标签 java collections

我有一个包含五个数字的列表(一手牌)。我想获取列表中每个数字的频率,并将其放入 map 或类似的东西中。

我知道自己实现这个很容易。但我很好奇,有没有办法在 Collections 框架中做到这一点?

<小时/>

(需要明确的是,不是任何特定数字的频率,而是列表中每个数字的频率。)

最佳答案

使用 Guava HashMultiset ,它内置了计数功能:

HashMultiset<String> set = HashMultiset.create(yourList);
int x = set.count("abc");

您还可以迭代并获取所有元素的计数:

for(Multiset.Entry<String> entry : set.entrySet()) { 
    System.out.println(entry.getElement() + " -> " + entry.getCount());
}

关于java - 如何获取列表中数字出现的频率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28785119/

相关文章:

java - 如何制作n叉树和前序遍历

java - 对于生成程序,java中有 "CodeModel API",就像Objective-C有没有API一样?

java - Spark并行化集合的实现

java - 需要修复for循环

java - 在 JSP 中,context.xml 似乎被破坏错误

java - 找不到类 org.springframework.data.mongodb.core.query.GeoCommand 的编解码器

java - 为什么 IdentityHashMap 使用线性探测来解决冲突

支持获取、设置和删除某些索引的 java arraylist 的 C# 等价物

java - Struts2:更新 Map 中 "List Of Objects"的值

java - HashMap 和垃圾回收 : do I need to call clear() before variable re-assignment?