Map集合:
1.将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值
2.Map集合被称为双列集合,collection集合被称为单列集合
3.跟collection接口一样,都属于集合框架的顶层接口
注:将可变对象用作映射键时必须格外小心。当对象是映射中某个键时,如果以影响 equals 比较的方式更改了对象的值,则映射的行为将是不确定的
常用方法:
1.添加
value put(key , value) 返回前一个与key关联的value值,不存在,则返回null
2.删除
value remove(key) 根据指定的key删除键值对,并返回该键的value值
void clear() 清空map集合
3.判断
boolean containsKey(key) 判断是否包含指定键的映射关系
boolean containsValue(value) 判断是否有一个或多个键映射到指定值
boolean isEmpty() 判断Map集合是否为空
4.获取
value get(key) 根据指定键获取value值(也可根据此判断该指定键是否存在)
int size() 获取集合中的元素个数
5.其他
Set<K> keySet() 返回此映射中包含所有key值的Set视图,对映射的修改可以在此Set中表现出来
Set<Map.Entry<K,V>> entrySet() 返回此映射中包含所有映射关系的Set视图,对映射的修改可以在此Set中表现出来
collection<V> values() 返回此映射中包含的所有value值的Collection视图 ,对映射的更改可在此 collection 中反映出来
Map的常用子类:
1.HashTable
内部数据结构:哈希表,支持同步(线程安全),不允许null值作为键和值
2.HashMap
内部数据结构:哈希表,不支持同步(线程不安全),允许null值作为键和值
HashSet实际上是一个HashMap 实例
3.TreeMap
内部数据结构:红黑树,不支持同步(线程不安全),可以对Map集合中的键进行排序
1.根据键的自然顺序
2.根据创建时的Comparator进行排序
TreeSet实际上是一个TressMap实例