重点是这:hashMap:https://blog.csdn.net/u012512634/article/details/72
hash表:https://blog.csdn.net/xiaoxik/article/details/74926090
hash算法:https://blog.csdn.net/sinat_31011315/article/details/78699655
其中要注意的几个点:
如何获取到存入下标index?:
当容量不够的时候,会进行扩容:
arraylist每次是扩容1.5倍,HashMap是2倍
arraylist中实现的容量增加的方法;
当发生地址冲突的时候(不是容量不够的时候):
扫描二维码关注公众号,回复:
2691757 查看本文章
hashMap的源码:
HashMap和HashTable比较:
不同:
1.HashMap支持null值和null键的,而HashTable则会抛出空指针。原因是类内部做了处理。
2.HashMap不是线程安全的,而HashTable是线程安全的。因为HashTable中的方法的是用Synchronize同步过的
如果HashMap想进行同步的话,可以用ConcurrentHashMap
3.初始化的hashMap长度是16,而hashTable初始化长度是11;
相同:HashTable除了和HashMap有上述不同,其他基本相同,比如都用哈希表来Entry对象(含键值的对象)
fail-fast:指的就是多个线程在arraylist等非线程安全的集合中进行增删等操作时,造成的异常;