1、Map集合:形式Map(K,V)
(1)Map集合为双列集合,每一次添加一对元素。(类比Collection,Collection为单列集合,每一次添加一个元素)。
(2)Map集合存放的元素为键值对(Key,Value)。
(3)Map集合中键值(Key)具有唯一性。一个键只能对应一个值,但是一个值可能对应出现多个键。
如果后续要存储的键值对中的键在集合中一存在,则新的键值对中的值替换旧的值(存相同键值会覆盖)。
2、常用方法:
(1)添加:
value put(key,value); 返回值:返回前一个和key关联的值,如果没有返回null;如果有返回旧值。
(2)删除:
void clear(); 清空Map集合
value remove(Object key); 删除键值对,返回该键对应的值。
(3)判断:
boolean containsKey(Object key);
boolean containsValue(Object value);
boolean isEmpty();
(4)获取:
value get(Object key);如果没有该键返回null
int size();键值对个数
3、Map集合遍历键值对方式:
1.Map没有迭代器方法,故要遍历访问Map集合中的所有元素需要通过Map列出的所有方法中另想办法:
(1)获取到Map集合中的所有key; Set<Key> keySet()
(2)遍历key,通过key获取该key对应的value。 value get(Object key)
2.通过键值对Entry<Key,Value>中的getKey和getValue方法获取键值对
(1)获取键值对集合;Set<Map.Entry<Key,Value>> set = map.entrySet();
(2)通过迭代器遍历键值对实体,通过实体的getKey和getValue方法获取对应的键值对。
for (Iterator<Entry<Key, Value>> iterator = entrySet.iterator(); iterator.hasNext();) {
Entry<Key, Value> entry = (Entry<Key, Value>) iterator.next();
System.out.print("<"+entry.getKey()+","+entry.getValue()+"> ");
}
4、Map常用的子类:
Hashtable:内部数据结构是哈希表,是同步的。不允许null作为键,也不允许null作为值。
HashMap:内部数据结构是哈希表,是不同步的。允许null作为键或值。
TreeMap:内部数据结构是二叉树,是不同步的。可以对Map集合中的键进行排序。
5、Map常用子类保证键唯一的方式:
HashMap:集合键值对中键元素要实现hashCode和equals方法。
TreeMap:两种方式:
(1)集合键值对中键元素要实现CompareTo方法(按照排序规则)
(2)根据规则自定义一个比较器,再使用带有该比较器作为参数的构造函数初始化TreeMap对象。
|
|