我试图弄清楚如何计算ArrayList
中由破折号---
分解的元素的出现。
ArrayList<String> animals = new ArrayList<String>();
animals.add("dog");
animals.add("cat");
animals.add("bat");
animals.add("bat");
animals.add("---");
animals.add("cat");
animals.add("dog");
animals.add("dog");
animals.add("---");
animals.add("bat");
animals.add("bat");
animals.add("dog");
所以我的ArrayList
看起来像这样:
animals = {"dog", "cat", "bat", "bat", "---", "cat", "dog", "dog", "---", "bat", "bat", "dog"}
我希望我的输出(按字母顺序)如下所示:
bat: 2
cat: 1
dog: 1
---
cat: 1
dog: 2
---
bat: 2
dog: 1
在我破折号之前,我通过使用这个
int occurrences = Collections.frequency(animals, "bat");
知道我该如何实现吗?
参考方案
这主要取决于您打算如何使用每个值的频率。如果目标只是打印它,请执行以下操作:
SortedMap<String, Integer> freq = new TreeMap<>(); // to sort keys alphabetically
for (String animal : animals) {
if (animal.equals("---")) {
System.out.println(freq);
freq.clear();
} else {
freq.merge(animal, 1, Integer::sum);
}
}
System.out.println(freq);
将输出:
{bat=2, cat=1, dog=1}
{cat=1, dog=2}
{bat=2, dog=1}
Java-搜索字符串数组中的字符串 - java在Java中,我们是否有任何方法可以发现特定字符串是字符串数组的一部分。我可以避免出现一个循环。例如String [] array = {"AA","BB","CC" }; string x = "BB" 我想要一个if (some condition to tell wheth…
Java RegEx中的单词边界\ b - java我在使用\b作为Java Regex中的单词定界符时遇到困难。对于text = "/* sql statement */ INSERT INTO someTable"; Pattern.compile("(?i)\binsert\b");找不到匹配项Pattern insPtrn = Pattern.compile(&…
Java Double与BigDecimal - java我正在查看一些使用双精度变量来存储(360-359.9998779296875)结果为0.0001220703125的代码。 double变量将其存储为-1.220703125E-4。当我使用BigDecimal时,其存储为0.0001220703125。为什么将它双重存储为-1.220703125E-4? 参考方案 我不会在这里提及精度问题,而只会提及数字…
当回复有时是一个对象有时是一个数组时,如何在使用改造时解析JSON回复? - java我正在使用Retrofit来获取JSON答复。这是我实施的一部分-@GET("/api/report/list") Observable<Bills> listBill(@Query("employee_id") String employeeID); 而条例草案类是-public static class…
字符串内存分配 - java哪一个更好System.out.println("hello world"); 要么String s="hello world"; System.out.println(s); 参考方案 对于此简单示例,在内存分配方面没有区别。