如何解决如何计算Java中ArrayList中的匹配元素
| 我对如何计算java中ArrayList中的匹配元素有疑问。 例如:我的ArrayList包含[运动,运动,球,球员,运动] 我需要输出像:word sport frequency 3
word ball frequency 1
word player frequency 1
感谢前进
解决方法
使用地图:
Map<String,Integer> occurrencies = new HashMap<String,Integer>();
for (String word : list) {
occurrencies.put(word,occurrencies.containsKey(word)
? occurrencies.get(word) + 1 : 1);
}
for (Entry<String,Integer> entry : occurrencies.entrySet()) {
System.out.println(\"Word: \"+entry.getKey()
+ \",occurences: \"+entry.getValue());
}
如果要按字母顺序对单词进行排序,请使用TreeMap
代替HashMap
。
(当然,如其他人所建议的那样,使用番石榴ѭ4this会容易得多)
, 如果您愿意引入外部依赖关系:Google Guava库包含Multiset的各种实现,这是您想要的东西的名称。如果您不愿意为此依赖库,则可以至少查看源代码。基本上,多集是某种类型的映射到一个整数,该整数保存集合中特定项目的计数。
当然,我假设您实际上可以用Multiset替换ArrayList。
, 将内容复制到另一个数据结构中:
Map<String,Integer>
键(String
)是单词,Integer
值存储计数。
, 您还可以对列表进行排序,然后计算单词重复的次数
在输出中增加了字母顺序的加成
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。