集合框架
2023-03-05 23:00:19 0 举报
AI智能生成
集合
作者其他创作
大纲/内容
ConcurrentSkipListSet
NavigableSet<<interface>>
SortedSet<<interface>>
TreeSet
LinkedHashSet
HashSet:HashSet 从源码分析是使 HashMap 来实现的,只是Valu 固定为一个静态对象,使用 Key 保证集合元素的唯一性,但它不保证集合元素的顺序。怎么保证值的唯一性?key是对象,通过对象的hashcode和其他对象的hashcode做比较,如果不同则不存在相同值,可以存入;如果存在hashcode相同则继续使用equals()比较两个对象是否一样,如果一样则不让其加入操作。
AbstractSet
Set<<interface>>
ArrayList 是容量可以改变的非线程安全集合,内部实现使用数组进行存储,数组天然⽀持随机访问,时间复杂度为 O(1)
实现了 RandomAccess 接⼝的list,优先选择普通 for 循环 ,其次 foreach
ArrayList
Stack
Vector:Vector 类的所有⽅法都是同步的。可以由两个线程安全地访问⼀个Vector对象、但是⼀个线程访问Vector的话代码要在同步操作上耗费⼤量的时间。
LinkedList 的本质是双向链表,底层使用双向链表数据结构
与 ArrayList 相比 LinkedList 的插入和删除速度更快,但是随机访问速度则很慢
这个接口同时具有队列和栈的性质。
LinkedList 的优点在于可以将零散的内存单元通过附加引用的方式关联起来,形成按链路顺序查找的线性结构,内存利用率较高。
LinkedList
AbstractSequentialList
AbstractList
CopyOnWriteArrayList
List<<interface>>List 集合是线性数据结构的主要实现
BlockingQueue<<interface>>
Deque<<interface>>
LinkedBlockingQueue
SynchronousQueue
ArrayBlockingQueue
PriorityBlockingQueue
DelayQueue
外框
AbstractQueue
Queue<<interface>>
Collection<<interface>>
ConcurrentHashMap
ConcurrentMap<<interface>>
HashTable
TreeMap
LinkedHashMap
HashMap:几个重要属性:1、loadFactor,它是负载因子,默认值是 0.75,表示扩容前;2、threshold 它是记录 HashMap 所能容纳的键值对的临界值,超过临界值要进行扩容,它的计算规则是负载因子乘以数组长度。3、size,它用来记录 HashMap 实际存在的键值对的数量。 4、modCount,它用来记录 HashMap 内部结构发生变化的次数。 5、DEFAULT_INITIAL_CAPACITY ,它规定的默认容量是 16。
AbstractMap
ConcurrentSkipListMap
NavigableMap<<interface>>
SortedMap<<interface>>
Map<<interface>>
集合框架
0 条评论
回复 删除
下一页