Map就是(key,value)一对一的映射关系;
key没有顺序,不允许重复,Map有一个keySet方法,返回一个key组成的Set集合;
value则可以重复,根据key作为索引来查找;
Map接口定义常用方法如下:
--void clear();删除该Map的所有key-value对;
--boolean containsKey(Object key);查询Map中是否包含指定key;
--boolean containValue(Object value)查询Map中是否包含指定value;
--Object get(Object key)返回指定key的对应value;如果没有则null;
--boolean isEmpty()查询是否为空;
--Set keySet()返回所有key组成的Set集合
--Object put(Object key, Object value)添加新的key-value对(如果key有了,则新的覆盖旧的);
--void putAll(Map m)将指定的Map复制到本Map中
--Object remove(Object key)删除指定key的key-value对;
--int size()返回该Map里德key-value个数;
--Collection values() 返回该Map中所有value组成的Collection;
--Set entrySet()返回Map中所包含的key-value对所组成的Set集合,每个集合元素都是Map.Entry的对象;(Entry为Map内部类)
----Entry作为Map的一个内部类,封装了key-value对,包含三个方法:
1,Object getKey();返回Entry里的Key值;
2,Object getValue();返回Entry里的Value值;
3,Object setValue(V value)设置该Entry里包含的value值,并返回新的value值;
---HashMap和Hashtable是Map的2个主要实现类:
(HashTable不允许把null作为key和value);
HashMap hm = new HashMap(); hm.put(1,"a"); hm.put(2,"b"); hm.put(3,"c"); Iterator it = hm.keySet().iterator(); while(it.hasNext()){ int key = (int) it.next(); System.out.println(key+"----->"); System.out.println(hm.get(key)); }