Map集合概述
Interface Map <K,V>:K表示键的类型,V:表示值的类型
Map就是将键映射到值的对象:不能包含重复的键;每个键可以映射到最多一个值
Map的基本方法
Map<String, String> map = new HashMap<>();
//将指定的值与该映射中的指定键相关联
map.put("JYQ","XKA");
map.put("WST","DBD");
map.put("WYX","XKA");
//当键第二次出现则是修改原来的键对应的值
map.put("WYX","XBB");
//根据键删除键值对元素,并返回被删除键值对的值
System.out.println(map);
System.out.println(map.remove("JYQ"));
System.out.println(map.remove("JYQ"));//null
// //移除所有键值对元素
// map.clear();
// System.out.println(map);
//判断集合是否包含指定的键
System.out.println(map.containsKey("WST"));
System.out.println(map.containsKey("XZZ"));
//判断集合是否包含指定的值
System.out.println(map.containsValue("DBD"));
System.out.println(map.containsValue("ZZ"));
//判断集合是否为空
System.out.println(map.isEmpty());
//返回集合中键值对的 个数
System.out.println(map.size());
结果:
{JYQ=XKA, WYX=XBB, WST=DBD}
XKA
null
true
false
true
false
false
2
ArrayList嵌套Map
检查字符串中字符出现次数
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
// HashMap<Character,Integer> hm = new HashMap<>();
TreeMap<Character,Integer> hm = new TreeMap<>();
for(int i = 0;i<line.length();i++){
//返回字符串指定位置的字符
char key = line.charAt(i);
//去HashMap中查找该字符是否存在
Integer value = hm .get(key);
if(value == null){
hm.put(key,1);
} else {
value++;
hm.put(key,value);
}
}
StringBuilder sb = new StringBuilder();
Set<Character> keySet = hm.keySet();
for(Character c : keySet){
Integer value = hm.get(c);
sb.append(c).append("(").append(value).append(")");
}
String result = sb.toString();
System.out.println(result);