本文共 1017 字,大约阅读时间需要 3 分钟。
数据结构的:数组,线性表,非线性表:
通过上面的源码分析,我们来比较不同元素之间的差异:
问题:
1.ArraList 和Vector的区别
2。ArrayList 和LinkList 之间区别
3.LInkList和hashMap区别:
4.hashMap 和TreeMap 之间的区别
以下类推:
我们从有序性,同步性,数据结构,方法说明上,特性说明, :上 四方面做区别:
考虑1:
相同:
1..ArraList 和Vector 都是有序元素,基于基本的线性表构造而成。增减操纵类似动态数组
不同:
1.同步性
ArrayList线程不安全,vector 线程安全
2:数据增长
即Vector增长原来的一倍,ArrayList增加原来的0.5倍。
考虑2:
相同:
1..ArraList 和Vector 都是有序元素,基于基本的线性表构造而成。增减操纵类似动态数组
异同:
Array(数组)是基于索引(index)的数据结构,它使用索引在数组中搜索和读取数据是很快的
LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.当然,这些对比都是指数据量很大或者操作很频繁
考虑3:
截然不同的数据结构:
LinkList是一个双链表,线程不安全
基于hash 表的Map 结构,线性表的速度最快
考虑4:
hashmap 是由hash 表生成的 key-value 集合。
TreeMap 是由红黑树实现的有序的 key-value 集合。
共同点:
Map:在数组中是通过数组下标来对 其内容进行索引的,而Map是通过对象来对 对象进行索引的,用来 索引的对象叫键key,其对应的对象叫值value;
HashMap和TreeMap都不是线程安全的
异同点:
1、HashMap是通过hashcode()对其内容进行快速查找的;HashMap中的元素是没有顺序的;
TreeMap中所有的元素都是有某一固定顺序的,如果需要得到一个有序的结果,就应该使用TreeMap
2.HashMap:适用于Map插入,删除,定位元素;
TreeMap:适用于按自然顺序或自定义顺序遍历键(key)
3.明确定义了hashcode() 和equals(),保证了键的唯一性,而只是保证了 TreeMap继承SortedMap类;他保持键的有序顺序;
参考博文:
转载地址:https://blog.csdn.net/xiamaocheng/article/details/104558505 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!