版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011066470/article/details/83021793
1.map集合存储的是键值对,一对一对的存储。
添加:put(key,value); 删除 remove:clear(),remove(object obj);判断有:containskey(object key) containsvalue(object obj) isempty(); 获取: get(object obj) size() values()等。
2.例子:
Map<String,String> map=new HashMap<String,String>();
map.put("01","lu");
map.put("02","jian");
map.put("03","fu");
System.out.println("containskey:"+map.containsKey("01"));
System.out.println("remove:"+map.remove("03"));
System.out.println("get:"+map.get("03"));
Collection<String> coll=map.values();
System.out.println("coll:"+coll);
结果:
containskey:true
remove:fu
get:null
coll:[lu, jian]
3.集合的两种遍历方式:
1.keyset,将map中所有的键存储到set集合中,因为set集合具有迭代器,迭代方式取出所有的键,然后根据get方法,获取每个键值对的对应值。
2.entryset,大体和keyset相同
Map<String,String> map=new HashMap<String,String>(); map.put("01","lu"); map.put("02","jian"); map.put("03","fu"); //1.第一种通过keyset ,while循环 Set<String> keySet=map.keySet(); Iterator<String> it=keySet.iterator(); while(it.hasNext()){ String key=it.next(); System.out.println("key:"+key+" value:"+map.get(key)); } //2.第二种通过keyset,for循环 for(String k:map.keySet()){ System.out.println("k:"+k+"=="+map.get(k)); }
结果:
key:01 value:lu
key:02 value:jian
key:03 value:fu
k:01==lu
k:02==jian
k:03==fu
4.map的集合的比较
hashtable :底层是哈希表,不可以存储null键null值,该集合线程同步,jdk1.0效率低
hashmap: 底层是哈希结构,允许存储null键null值,该集合是不同步的,jdk1.2效率高
treemap: 底层是二叉树,线程不同步,可以用于map集合中的键进行排序。