Map集合
1、是什么
键值对(双列)集合,一个元素有两个值,每个元素叫键值对象;键不能重复;
2、子类
HashMap(重点,面试高频):无序,不重复,无索引;基于哈希表的数据结构,保证键的唯一;线程不安全,效率高。允许Null键和Null值;
LinkedHashMap:添加的元素按照元素键有序,不重复;是Map接口的哈希表和链表实现;
Hashtable(基本不用):线程安全,效率低。不允许Null键和Null值;
TreeMap:键是红黑树结构,保证键的唯一和有序;
扩展1:HashMap和Hashtable的区别?
Hashtable:线程安全,效率低。不允许Null键和Null值;
HashMap:线程不安全,效率高。允许Null键和Null值;
3、常用方法
#添加功能 V put (K key ,V value); #删除功能 void clear( ); V remove(Object key); #判断功能 boolean containsKey(Object key); boolean containsValue(Object value); boolean isEmpty( ); #获取功能 Set<Map.Entry<K,V>> entrySet( );//转为Set集合,遍历可以一次获取键值对 V get(Object key); Set<K> keySet( ); Collection<E> vakues( ); #长度功能 int size( );