以字符串为例,首先将字符串中的每个字符存入Map中
Map<Character,Integer> map = new HashMap<Character,Integer>();
String str = "aabbbccd";
//把字符串放入Map中
for(int i=0;i<str.length();i++) {
char temp = str.charAt(i);
if(map.containsKey(str.charAt(i)))
map.put(temp, map.get(temp)+1);
else
map.put(temp, 1);
}
方法一:通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历。
(这是最常用的方式,特别是在容量比较大的时候适合使用,可以直接获取到键和值)
for(Map.Entry<Character,Integer> entry:map.entrySet()){
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
方法二:通过Map.keySet遍历key,通过键找值value遍历。
(这种方法效率不是很高,当只需要健值时可以使用)
for(Character ch:map.keySet()) {
System.out.println("Key = " + ch + ", Value = " + map.get(ch));
}
方法三:当只需要map中的值时,可以通过Map.values来实现遍历。
for(int num: map.values()) {
System.out.println("Value = " + num);
}
方法四:使用使用Iterator迭代器进行遍历。
Iterator<Map.Entry<Character,Integer>> entries = map.entrySet().iterator();
while(entries.hasNext()) {
Map.Entry<Character,Integer> entry = entries.next();
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
运行结果:
Key = a, Value = 2
Key = b, Value = 3
Key = c, Value = 2
Key = d, Value = 1