定义一个泛型为String类型的List集合,统计该集合中每个字符出现的次数。
例如:集合中有”abcbcd”两个元素,程序最终输出格式为:“a = 1,b = 2,c = 2,d = 1”
List<String> list = new ArrayList<>();
list.add("abc");
list.add("bcd");
定义这个集合,然后遍历集合将其转为字符串,并将字符串转为字符数组,判断每个字符个数。
public static void main(String[] args) throws InterruptedException {
List<String> list = new ArrayList<>();
list.add("abcbcd");
//统计每隔字符出现的次数
Map<Character,Integer> map = new HashMap<>();
List<Character> characters = new ArrayList<>();
for(String str : list){
for(char ch : str.toCharArray()){
if(! characters.contains(ch)){
characters.add(ch);
}
map.put(ch,map.getOrDefault(ch,0) + 1);
}
}
//排序
characters.sort(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
return o1 - o2;
}
});
//按照指定格式输出
StringJoiner joiner = new StringJoiner(",");
for(Character ch : characters){
joiner.add(ch + "=" + map.get(ch));
}
System.out.println(joiner.toString());
}