用java创建一个List集合

用java创建一个List集合用java创建一个list集合,保存'a b a b c a c b a a b'。然后使用Map集合,key保存对应的字母,value保存对应字母的出现次数。

package test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 用java创建一个List集合用java创建一个list集合,保存'a b a b c a c b a a b'。
* 然后使用Map集合,key保存对应的字母,value保存对应字母的出现次数。
* @author ASUS
*
*/
public class Test15 {
public static void main(String[] args) {
List<Character> list = new ArrayList<Character>();
list.add('a');
list.add('b');
list.add('a');
list.add('b');
list.add('c');
list.add('a');
list.add('c');
list.add('b');
list.add('a');
list.add('a');
list.add('b');

Map<Character,Integer> map = new HashMap<Character,Integer>();
for(Character ch : list){
if(map.containsKey(ch)){
int num = map.get(ch);
num+=1;
map.put(ch, num);
}else{
map.put(ch, 1);
}
}

System.out.println(map);
}
}追问

为啥报错啊

谢谢

追答

啥错?

追问

hM.put()报错

不是,应该是 for(Character ch :list)这句里面的list报错

追答

你list里面装的String吧?你拿泛型是字符的Map,去装字符串肯定是有问题的,但是问题是索引越界,,你可以先把list的泛型改成字符,或者吧map的key的泛型改成字符串,再看一下,你仿造我给你写的,就不会错

追问

我改成统一的泛型了,但是又有新的错误了,就是list.add又报错了,这是怎么回事儿呢

追答

字符是 --->'a' 对应的泛型是Character
字符串是-----> "a" 对应的泛型是String
你现在list的泛型是Character了,所以你只能添加字符了,,所以add('a')-->而不是add("a")

追问

您好,还在吗?可以再帮我解决一个代码问题么?😊

温馨提示:答案为网友推荐,仅供参考
相似回答