如何在Java中计算ArrayList中匹配的元素
我对如何在java中计算ArrayList中匹配的元素有疑问。。 我的数组列表包含[运动,运动,球,球员,运动] 我需要像这样输出:如何在Java中计算ArrayList中匹配的元素,java,collections,arraylist,Java,Collections,Arraylist,我对如何在java中计算ArrayList中匹配的元素有疑问。。 我的数组列表包含[运动,运动,球,球员,运动] 我需要像这样输出: word sport frequency 3 word ball frequency 1 word player frequency 1 如果您愿意引入外部依赖项,请感谢advance:Google Guava库包含各种实现,这是您想要的东西的名称。如果你不愿意依赖一个库来实现这一点,你至少可以看看源代码。Multiset基本上是某种类型到整数的映射,该整数保
word sport frequency 3
word ball frequency 1
word player frequency 1
如果您愿意引入外部依赖项,请感谢advance:Google Guava库包含各种实现,这是您想要的东西的名称。如果你不愿意依赖一个库来实现这一点,你至少可以看看源代码。Multiset基本上是某种类型到整数的映射,该整数保存集合中特定项的计数
当然,我假设您实际上能够用Multiset替换您的ArrayList。如果您愿意引入外部依赖项:Google Guava库包含各种实现,这是您想要的东西的名称。如果你不愿意依赖一个库来实现这一点,你至少可以看看源代码。Multiset基本上是某种类型到整数的映射,该整数保存集合中特定项的计数
当然,我假设您实际上能够用Multiset替换ArrayList。将内容复制到另一个数据结构中:
Map<String, Integer>
Map
键(
字符串
)是单词,整数
值存储计数。将内容复制到另一个数据结构中:
Map<String, Integer>
Map
键(字符串
)是单词,整数
值存储计数。使用映射:
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());
}
Map-occurrences=newhashmap();
for(字符串字:列表){
发生率.put(单词,发生率.containsKey(单词)
?发生率。获取(单词)+1:1;
}
for(条目:accurrencies.entrySet()){
System.out.println(“Word:+entry.getKey()
+,出现次数:“+entry.getValue());
}
如果希望单词按字母顺序排序,请使用TreeMap
而不是HashMap
(当然,正如其他人所建议的那样,使用番石榴会容易得多)使用地图:
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());
}
Map-occurrences=newhashmap();
for(字符串字:列表){
发生率.put(单词,发生率.containsKey(单词)
?发生率。获取(单词)+1:1;
}
for(条目:accurrencies.entrySet()){
System.out.println(“Word:+entry.getKey()
+,出现次数:“+entry.getValue());
}
如果希望单词按字母顺序排序,请使用TreeMap
而不是HashMap
(当然,正如其他人所建议的那样,使用番石榴会容易得多)您还可以对列表进行排序,然后计算单词重复的次数
增加了输出中字母顺序的额外功能您还可以对列表进行排序,然后计算单词重复的次数
增加了输出中字母顺序的额外功能想象一下,您一次只能在该arraylist中看到一项。想象一下。您将如何解决此问题?假设您一次只能在该arraylist中看到一项。想象一下。您将如何解决这个问题?+1用于Guava Multiset,尽管我怀疑OP是否准备好使用像Guava Yet一样复杂的库,为什么在Java具有
映射时使用外部库?@MarcoS:一般来说(在实际应用中使用)Multiset
有一个比Map
API更适合这种情况的API。然而,我同意OP可能不需要它来完成他们示例中的简单任务(特别是当它是家庭作业时)。@Sean:是的,我认为你是对的。使用您的解决方案,OP可能会更好。+1对于Guava Multiset,尽管我怀疑OP是否准备好使用像Guava Yet这样复杂的库,为什么在Java有映射时使用外部库?@MarcoS:一般来说(在实际应用中使用)Multiset
有一个比Map
API更适合这种情况的API。然而,我同意OP可能不需要它来完成他们示例中的简单任务(特别是当它是家庭作业时)。@Sean:是的,我认为你是对的。使用您的解决方案,OP可能会更好。