Map的继承关系如下图:
Map
├Hashtable
├HashMap
└WeakHashMap
注意:Map没有继承Collection接口,Map提供key到value的映射。一个Map中不能包含相同key,每个key只能映射一个value。Map接口提供3种集合的视图,Map的内容可以被当做一组key集合,一组value集合,或者一组key-value映射。
Map特点:元素按键值对存储,无放入顺序
Map接口有三个实现类:HashMap,HashTable,LinkeHashMap
HashMap非线程安全,高效,支持null
HashTable线程安全,低效,不支持null
SortedMap有一个实现类:TreeMap
代码如下:
package com.wjy;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest {
public static void main(String[] args){
Map<Integer,String> map=new HashMap<Integer,String>();
map.put(2012201668, "王吉元");
map.put(110,"警察局");
System.out.println("The name is: "+map.get(2012201668));
System.out.println("Contains the key? "+map.containsKey(2012201668));
System.out.println("Contains the value? "+map.containsValue("wangjiyuan"));
System.out.println("Contains the value? "+map.containsValue("王吉元"));
System.out.println(map.entrySet());
System.out.println(map.get(110));
map.remove(110);
System.out.println(map.get(110));
map.put(888,"发发");
map.put(666,"顺顺");
/*
* Map没有iterator方法(.iterator()),使用keyset()将键值存储在Set中。
*/
Set set=map.keySet();
Iterator it=set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
/*
* 注意这是标准写法,while(it.hasNext()){ 在这里调用it.next()从容器中取值。}
*/
}
}
运行结果;
The name is: 王吉元
Contains the key? true
Contains the value? false
Contains the value? true
[2012201668=王吉元, 110=警察局]
警察局
null
2012201668
666
888