我有一个Arraylist如下,我需要计算Arraylist中所有元素的出现次数,知道Arraylist的内容可能会根据用户输入而改变。即:第二次用户可以输入(C和D)
ArrayList<String> letters = new ArrayList<String>();
letters.add("A");
letters.add("B");
letters.add("A");
letters.add("B");
答案 0 :(得分:4)
您可以使用Map
来跟踪令牌(和计数)。如果您使用LinkedHashMap
,则会保留广告订单。我会使用for-each
loop来迭代letters
;如果map
当前未包含letter
,则将其设置为1
(否则会增加当前计数)。最后,打印map
。像
Map<String, Integer> map = new LinkedHashMap<>();
for (String letter : letters) {
map.put(letter, !map.containsKey(letter) ? 1 : 1 + map.get(letter));
}
System.out.println(map);
此外,当您声明时,您可以初始化您的List
List<String> letters = Arrays.asList("A", "B", "A", "B");
答案 1 :(得分:-1)
迭代ArrayList
并检查每个元素是否与特定String
匹配:
String test = //string you want to count occurrences of
int count = 0;
for (String s : letters) {
if (s.equals(test)) {
count++;
}
}