gpt4 book ai didi

java - 计算 ArrayList 分成组的出现次数

转载 作者:行者123 更新时间:2023-12-03 21:46:08 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何计算 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 - 计算 ArrayList 分成组的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51743532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com