Java 不同数据结构之间的比较

数据结构的:数组,线性表,非线性表:

通过上面的源码分析,我们来比较不同元素之间的差异:

问题:

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/LDYLDYss/article/details/90696787

https://www.cnblogs.com/lingshang/p/10897912.html

https://blog.csdn.net/zhang199416/article/details/68060153

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

执于代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值