Java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。

1. Collection: 又有两大类set,list。

– list(相当于普通数组,元素可重复):基本的三类

   1 ArrayList: 元素单个,效率高,多用于查询,底层结构数组,有序。 

   2 LinkedList:元素单个,多用于插入和删除,底层结构双向链表,有序。

   3 Vector: 元素单个,线程安全,多用于查询,底层结构数组,有序。

   4 Stack:栈,先进后出
   
– set(数学意义上的集合,元素不可重复):

  1 HashSet:HashSet的底层实际上是由HashMap实现的。其四个构造函数分别对应相应的HashMap。
  
  2 TreeSet:其中的元素按照升序排列,缺省是按照自然顺序进行排序,意味着TreeSet中的元素要实现Comparable接口,或者有一个自定义的比较器Comparator。底层数据结构红黑树。
  
2.Map(存储键值对,key唯一):

   1 HashMap:继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。HashMap 的实现不是同步的,这意味着它不是线程安全的,无序且值不唯一。
   
   2 TresMap:是一个有序的key-value集合,它是通过红黑树实现的。有序,不安全,值也不唯一。
   
   3 ConcurrentHashMap:线程安全的,使用的锁分段技术。

 

主要的数据结构

 

 

数据结构之间的对比

 

版权声明:本文为horken原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/horken/p/10706144.html