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

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

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

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

List接口的常用实现类:

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

Set接口的常用实现类:

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

Map接口里面保存的是键值对

常用实现类:

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

其中,Vector已经被淘汰,可用ArrayList替代。Hashtable已经被淘汰,可用HashMap替代。如果需要解决高并发问题,可使用Map接口的子类ConcurrentHashMap;

Java中集合和数组的区别?

    集合是Java中用来存放对象的容器。 数组是一种数据类型,即引用类型,数组是相同数据类型元素的集合; 数组的长度固定,一组数组中只能存储相同数据类型的数据。 集合的大小可动态扩展,一个集合中可以存储各种类型的数据。

集合和数组之间的互相转换

    集合转为数组: 一维数组转为集合:
经验分享 程序员 微信小程序 职场和发展