五、Map集合
1、Map集合特点:该集合存储键值对,一对一对往里存,而且要保证键的唯一性。
2、该接口主要方法:
*添加:
V put(K key,V value);// put方法添加元素时,如果相同的键添加两次,那么后添加的值会覆盖原有键对应的值,并且put方法会返回该键原来对应的value值
void putAll(Map<? extends K,? extends V>m);
*删除:
void clear();//删除所有
V remove(Object key);//删除含有Key的映射
*判断:
boolean containsValue(Object value);//是否包含含有该value值的映射
boolean containsKey(Object key);//是否包含含有该key值的映射
boolean isEmpty();//判断集合是否为空
*获取:
V get(Object key);//返回Key的value
int size();//返回映射的个数,即集合的长度。
Collection<V> values();//返回一个包含在该Map中的所有value的集合。即获取Map集合中所有的值。并存到collection集合中
Set<Map.Entry<K,V>> entrySet();//返回包含有键值对的Set集合
Set<K> keySet();//返回包含所有键的Set集合
3、Map集合常见子集:
|--Hashtable:底层是哈希表数据结构,不可以存入null键和null值。该集合是线程同步的,JDK1.0出产,效率低。
|--HashMap:底层是哈希表数据结构,允许存入null键和null值。该集合是不同步的,JDK1.2出产,效率高。
(注意和上面的区别,面试多)
|--TreeMap:底层是二叉树数据结构,线程不同步。可以用于给Map集合中的键进行排序。
Map和Set很像,其实,Set底层就是使用了Map集合。
4、