Java普通容器
集合
Liao_Xiang
这个作者很懒,什么都没留下…
展开
-
四、Set
HashSet(无序,唯一): 基于 HashMap 实现的,底层采用 HashMap 来保存元素 LinkedHashSet: LinkedHashSet 继承于 HashSet,并且其内部是通过 LinkedHashMap 来实现的。有点类似于我们之前说的LinkedHashMap 其内部是基于 HashMap 实现一样,不过还是有一点点区别的 TreeSet(有序,唯一): 红黑树(自平衡...原创 2019-12-15 19:58:11 · 108 阅读 · 0 评论 -
三、Map(JDK1.7HashMap扩容问题)
public V put(K key, V value) { //初始化 if (table == EMPTY_TABLE) { inflateTable(threshold); } //存放key=null的元素 if (key == null){ return putForNullKey(value); } //获取hash值 int hash = hash(key);...原创 2019-12-15 18:48:00 · 936 阅读 · 0 评论 -
二、HashMap源码分析(JDK1.8)
HashMap底层数据结构 JDK1.8之前:数组+链表 JDK1.8:数组+链表+红黑树 HashMap部分源码分析 1、hash() static final int hash(Object key) { int h; return (key == null) ? 0 : (h = key.hashCode()) ^ (h >>> 16); } 该方法的...原创 2019-12-15 09:02:36 · 130 阅读 · 0 评论 -
一、List
List实现类的数据结构 Arraylist: Object数组 Vector: Object数组 LinkedList: 双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环) Arraylist 与 LinkedList 的区别 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 底层数据结构: Arraylist 底层使用的是...原创 2019-12-14 20:21:02 · 177 阅读 · 0 评论