一.HashMap的实现机制
1.HashMap是基于哈希表的map接口的非同步实现。HashMap相当于一个数组,数组的每个元素为一个链表。
2.向HashMap中插入一个Entry时,先计算Key的hashcode,根据hashcode确定Entry在数组中的位置,再根据equals判断是否存在重复元素。查找也类似
3.HashMap允许Null的K和Null的V。
4.HashMap初始化时允许指定 数组的初始化大小 和 加载因子。当元素个数>数组*加载因子时,HashMap需要扩容,扩容后需要重新分配元素的位置,性能较差
二.ConcurrentHashMap
1.HashMap适用于单线程;Hashtable适用于多线程,但性能不高,同一时刻能被一个线程使用
2.ConcurrentHashMap与Hashtable类似。区别在于,HashTable锁的是整个table,而ConcurrentHashMap锁的是segment(表的一个位置)
三.ArrayList的内部实现
1.ArrayList是可扩展的数组
2.ArrayList不适合频繁插入和删除的操作,LinkedList适合
四.容器的基本分类
Collection:List,按照顺序存储元素;Set,不插入重复元素;Queue,按照队列的方式确定对象产生顺序
Map:一组成对的<key,value>对象,可以用key查找value