Collection
2020-11-10 09:39:39 0 举报
Collection 集合 Map
作者其他创作
大纲/内容
Vector
HashMap集合底层是哈希表数据结构,是非线程安全的在jdk8之后,如果哈希表单向链表中元素超过8个,单向链表这种数据结构会变成红黑树数据结构,当红黑树上的节点数量小于6时,会重写把红黑树变成单向链表数据结构。这种方式也是为了提高检索效率,二叉树的检索会再次缩小扫描范围,初始化容量16. 默认加载因子 .75扩容:扩容之后的容量是原来的2倍
实现关系like a
SortedSet集合存储元素的特点:由于继承了Set集合,所以它的特点也是无序不可重复,但是放在SortedSet集合中的元素可以自动排序。我们成为可排序集合,放到该集合中的元素是自动按照大小顺序排序的
<<Interface>>SortedSet
List集合存储元素特点:有序可重复,存储的元素有下标有序实际上是说存进去是这个顺序,取出来还是这个顺序,这里的顺序不是按照大小排序有序是因为List集合都有下标,下标从0开始,以1递增
<<Interface>>Map
可迭代的,可遍历的所以的集合元素都是可迭代的,可遍历的
总结
Treemap集合底层的数据结构是一个二叉树
Hashtable
ArrayList
HashMap
Vector集合底层采用了数组这种数据结构Vector集合是线程安全的。Vector所有的方法都有syncharonized关键字修饰,所以线程安全,但是效率较低,现在保证线程安全有别的方案,所以Vector使用较少
<<Interface>>Iterator+hasNext()+next()+remove()
泛化
汉化关系、继承关系、is a
<<Interface>>Iterable
<<Interface>>SortedMap
HashSet
实际上HashSet集合在new的时候,底层实际上new了一个HashMap集合。向HashSet集合中存储元素,实际上是存储到HashMap集合中了。HashMap集合是一个哈希表数据结构
1、Map集合和Collection集合没有关系。2、Map集合以key和Value的这种键值对的方式存储元素。3、Key和Value都是存储java对象的内存地址4、所有Map集合的key特点:无序不可重复Map集合的key和Set集合存储元素特点相同
Properties线程是安全的,因为继承Hashtable,另外Proper ties 存储元素的时候也是采用key和value的形式存储,并且key和value只支持String类型,不支持其他类型Propeties被称为属性类
Hashtable集合底层是哈希表数据结构,是线程安全的,其中所有的方法都带有syncharonized关键字,效率较低,现在使用的比较少了,因为控制线程安全有其他更好的方案
所有集合继承Iterable的含义是,所有集合都是可迭代的
关联关系、has a
<<Interface>>Set
集合的迭代器对象
Properties
LinkedList
Set集合存储元素特点:无序不可重复。无序表示存进去是这个顺序,取出来就不一定是这个顺序了,另外Set集合中元素没有下标。Set集合中的元素还不能重复
TreeSet
ArrayList集合底层采用了数组这种数据结构ArrayList集合是非线程安全的。1、ArrayList集合初始化容量是10;2、ArrayList集合底层是Object类型数组Object[]3、扩容到原容量的1.5倍4、建议给定一个预估计的初始化容量,减少数组的扩容次数,这是ArrayList集合比较重要的优化策略5、数组的优点:检索效率较高6、数组的缺点:随机增删元素效率比较低。7、但是需要注意的是,向数组末尾添加元素,效率还是跟高的 。
TreeSet集合底层实际上是TreeMap newTreeSet集合的时候,底层实际上new了一个TreeMap集合往TreeSet放数据的时候,实际上是将数据放到了TreeMap集合中了,TreeMap集合底层采用了二叉树数据结构
LinkedList集合底层采用了双向链表数据结构1、LinkedList集合是双向链表2、对于链表数据结构来说,随机增删效率较高,检索效率较低。3、链表中的元素在空间存储上,内存地址不连续。
<<Interface>>Collection
<<Interface>>List
ArrayList:底层是数组LinkedList:底层是双向链表Vector:底层是数组,线程是安全的,效率低,使用少HashSet:底层是HashMap,放到HashSet集合中的元素等于放到HashMap集合key部分TreeSet:底层是TreeMap,放到TreeSet集合中的元素等于放到TreeMap集合key部分HashMap:底层是哈希表Hashtable:底层是哈希表,只不过线程安全的,效率较低,使用较少Properties:线程安全的,并且key和value只能存储字符串StringTreeMap:底层是二叉树。TreeMap集合的key可以自动按照大小排序list集合存储元素的特点:有序可重复有序:存进去的顺序和取出的顺序相同,每一个元素都有下标可重复;存进去1 可以再存储一个 1 Set集合的存储元素的特点:无序不可重复无序:存进去的顺序和取出的顺序不一定相同,另外Set集合中元素没有下标不可重复;存进去1,不能再存储1 了 SortedSet(SortedMap)集合存储元素的特点:首先是无序不可重复的,但是SortedSet集合中的元素是可排序的无序:存进去的顺序和取出的顺序不一定相同,另外Set集合中没有下标不可重复;存进去1 ,不能再存储1 了可排序;可以按照大小顺序排列
0 条评论
下一页