JAVA的数据结构

image.png

Iterator:迭代器,维护一个modcount,继承该接口的所以类都将自身的modcount传给迭代器,用于多线程快速失败fail-fast

collection:集合类

set:不重复集合

hashSet:利用hash方法散列,通过compare方法比较同hash的链表值不重复,重复则覆盖,!null
treeSet:类型一致,红黑树,实现Comparable

linkHashSet:数组加链表 + 内部静态类增加了after+befor实现双链表

List:列表
arrayList:数组,初始大小为10,负载因子为1,扩容因子为1.5 (1.5*length+1),System.arrayCopy(),查快插慢
linkList:双向链表,查慢插快

vector:arrayList的线程安全版本,依靠Sync

stack:堆,双向数组,增加next指向下一个元素,继承vector:增加了pop(),push(),peak()等方法

Map:key/value结构

hashMap:初始16,负载0.75,扩容2,桶大小2^n -1,数组+链表/红黑,低位异或的方式取得桶位置
treeMap:红黑树,实现Comparable,添加的自定义元素要实现Comparable
linkhashMap:数组加链表 + 内部静态类增加了after+befor实现双链表

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容