如何根据用户输入获取数组中字符串的出现次数
我有一个Arraylist如下,我需要计算Arraylist中所有元素的出现次数,知道内容Arraylist可能会根据用户输入而改变。即:在所述第二时间,用户可以输入(C和d)如何根据用户输入获取数组中字符串的出现次数
ArrayList<String> letters = new ArrayList<String>();
letters.add("A");
letters.add("B");
letters.add("A");
letters.add("B");
遍历ArrayList
,并检查是否每个元素匹配的特定String
:
String test = //string you want to count occurrences of
int count = 0;
for (String s : letters) {
if (s.equals(test)) {
count++;
}
}
我认为他们需要每个元素的计数。因此,需要HashMap
什么是'字母'?问题中没有任何内容说明列表中的字符串只有单个字母。这只是一个例子。 – Andreas
@Andreas'letters'是'ArrayList'。 OP的代码就在那里。 –
可以使用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");
你的意思,你要计算的元素有多少时间是在列表中? – rohitmohta
@Nermeen只是为了避免额外的编码,为什么你不使用'HashMap'并且保持计数,就像这样简单。 –
是的,我需要找出有多少个A和B存在 – Nermeen