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

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

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

 

相关文章:

  • 2022-12-23
  • 2021-12-29
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-04-25
  • 2021-07-12
  • 2021-11-23
  • 2021-04-08
  • 2021-06-11
  • 2022-12-23
相关资源
相似解决方案