入门:Java Map<String,String>遍历及修改
重点:在使用Map时注意key-value,key用于检索value的内容。
在正常情况下,可以不允许重复:在java中分为2中情况,一是内存地址重复,另一个是不同的地址但内容相等。
在使用Map是一定要特别注意,是否允许键值相等存储,在使用IdentityHashMap的键是变量时要小心。
在下面的示例中,键值为常量,指向同一个内存地址,所以会经过修改后还是保持相同数量的元素。
1 import java.util.IdentityHashMap; 2 import java.util.Map; 3 4 public class Main { 5 public static void main(String[] args) { 6 Map<String, String> m = new IdentityHashMap<String, String>(); 7 m.put("a", "java"); 8 m.put("b", "js"); 9 m.put("c", "php"); 10 System.out.println(m + ",size:" + m.size()); 11 for (String key : m.keySet()) { 12 if (key.equals("c")) { 13 // m.remove("c"); 14 m.put("c", "www"); 15 } 16 // System.out.println("key= " + key + " and value= " + m.get(key)); 17 } 18 System.out.println(m); 19 } 20 }
结果:
{b=js, a=java, c=php},size:3
{b=js, a=java, c=www}
借一张图,便于读者理解:
(图片来自:http://tianya23.blog.51cto.com/1081650/707603)