21《重学JAVA》-- 集合 (三)
一、Map集合
Map(映射)集合表示一种非常复杂的集合,允许按照某个键来访问元素。Map集合是由两个集合构 成的,一个是键(key)集合,一个是值(value)集合。键集合是Set类型,因此不能有重复的元素。 而值集合是Collection类型,可以有重复的元素。Map集合中的键和值是成对出现的。
Map操作
1. Map操作适用于HashMap和HashSet等。
2. get(Object key):返回指定键所对应的值;如果Map集合中不包含该键值对,则返回null。put(Object key, Object value):指定键值对添加到集合中。
3. remove(Object key):移除键值对。
4. clear():移除Map集合中所有键值对。
5. isEmpty():判断Map集合中是否有键值对,没有返回true,有返回false。
6. containsKey(Object key):判断键集合中是否包含指定元素,包含返回true,不包含返回false。containsValue(Object value):判断值集合中是否包含指定元素,包含返回true,不包含返 回false。
7. keySet():返回Map中的所有键集合,返回值是Set类型。
8. values():返回Map中的所有值集合,返回值是Collection类型。
9. size():返回Map集合中键值对数。
二、HashMap
HashMap是一个散列表,它存储的内容是键值对(key-value)映射,实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步而且HashMap是无序的,也不会记录插入的顺序。
HashMap继承AbstractMap,实现了Map、Cloneable、Serializable接口。
三、HashSet
HashSet基于HashMap来实现的,是一个不允许有重复元素的集合,允许有null值
但是HashSet是无序的,也不会记录插入的顺序,它不是线程安全的,如果多个线程尝试同时修改HashSet,则最终结果是不确定的。
HashSet 继承于AbstractSet抽象类,实现了Set接口,实现了Cloneable接口,得到了clone()方法,可以实现克隆功能。HashSet 实现了Serializable 可以被序列化,通过序列化去传输,典型的应用就是hessian协议。