java基础
文章平均质量分 74
Coder_wang99
小王的自我更新之旅。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HashMap、HashTable、ConcurrentHashMap一些原理与区别
一、HashMap(数组+链表) 继承了AbstractMap类,AbstractMap类实现了map接口; 数据结构:数组+链表,链表中的每个entry有四个属性,是key,value,hash,next; 头插法; **put() : ** 插入<K,V>时,程序首先会计算key的hashCode()值,然后对该值再哈希(为了减少哈希冲突,使元素均匀的分布在数组上,提高存取效率),然后把哈希值和 数组长度-1 进行按位与操作,得到存储数组的下表,如果在该位置没有链表结点,就直接把<K原创 2020-11-11 23:08:59 · 513 阅读 · 0 评论 -
Java中的集合类(ArrayList,LinkedList,Vector)
一、ArrayList 基于数组实现; 默认初始容量是10; 不具有线程安全性,用于单线程中(如果在并发条件下使用它,可以用Collections类中的静态方法synchronizedList进行调用); 在需要进行扩容时,ArrayList会扩容到原来的1.5倍,将之前的数据拷贝到新建的数组; 检索,在集合末尾插入删除一个元素O(1),其他位置增删O(n), 二、LinkedList 基于双向循环链表实现(有头结点); 线程不安全(如果在并发条件下使用它,可以用Collections类中的静态方法sync原创 2020-11-11 21:42:17 · 422 阅读 · 1 评论
分享