个人理解Java中的集合以及常用实现类


风流意气都作罢 提交于 2020-01-14 23:08:35

集合分为Collection和Map两种体系。

Collection 接口是集合的根接口之一,Collection接口有三大接口:List(列表)、Set(集合)、Queue(队列)

  • List接口中元素有固定下标(有序,可重复)。
  • Set接口中元素保存不重复,且只有一个null,(无序,唯一)。
  • Queue(队列)接口是先进先出的线性数据结构。

List接口的常用实现类:

  1. ArraryList:采用数组的方式进行保存数据,插入数据慢但查询数据快,是非线程安全的。
  2. LinkedList:采用双向链表的方式进行保存数据,其插入数据速度较快。
  3. Vector:和ArrayList一样,采用数组的方式进行保存数据,但是他是线程同步、线程安全的。

Set接口的常用实现类:

  1. HashSet:不可排序的,元素不可重复的,需要hashCode()和equals()。
  2. TreeSet:可排序,元素不可重复的。
  3. LinkedSet:是hashSet的子类,元素不可重复的,底层由链表实现的哈希表,保留了元素插入顺序。

Map接口里面保存的是键值对
常用实现类:

  1. HashMap:不可排序的且允许键值为null,是非线程安全的。
  2. TreeMap:可排序的。
  3. Hashtable:不可排序的且不允许有null值,是线程安全的。

工具导航Map