Java中的集合类

170 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

1、集合框架简介

  • 集合可以看作是一种容器,用来存储对象信息。

  • 所有集合类都位于java.util包下,但支持多线程安全的集合类位于java.util.concurrent包下。

  • Java集合类主要由两个根接口CollectionMap派生出来的,Collection派生出了三个子接口:

ListSetQueue,

因此Java集合大致也可分成List、Set、Queue、Map四种接口体系。

  1. List 代表了有序可重复集合,可直接根据元素的索引来访问;

  2. Set 代表无序不可重复集合,只能根据元素本身来访问;

  3. Queue 是队列集合;

  4. Map 代表的是存储key-value对的集合,可根据元素的key来访问value。

2、集合和数组的区别:

1、数组声明了它容纳的元素的类型,而集合不声明类型。

2、数组是静态的,一个数组实例具有固定的大小,一旦创建了就无法改变容量了。而集合是可以动态扩展容量,可以根据需要动态改变大小,集合提供更多的成员方法,能满足更多的需求。

3、数组的存放类型只能一种(基本类型/引用类型),集合存放的类型可以不是一种(不加泛型时添加的类型是Object)。

3、Collection接口和Map接口

Collection集合框架图(虚线表示接口,实线表示实现类)

微信图片_20221222111436.png

Map集合框架图(虚线表示接口,实线表示实现类)

微信图片2.png

3.1、List接口

  • List是有序集合,可以通过下标访问集合中的元素。
  • List允许重复值,允许有多个null值。
  • List接口是Collection接口的子类。
  • List的实现类有 LinkedListArrayListVectorStack

3.2、Set接口

  • Set接口继承自 Collection接口,但是并没有对方法进行扩充,是 Collection的子接口。
  • Set接口中元素无序,并且会对元素进行对比,保证存入的元素不出现重复。
  • Set接口不允许重复元素,最多包含一个null值。
  • Set接口的遍历方式:使用迭代器或增强for循环。
  • Set接口主要有两个实现类,分别是 HashSetTreeSet

3.3、Map接口

  • Map集合中存储的元素是一组键值对象,是key与value是一个映射。
  • Map提供了一个更通用的元素存储方法,每个键映射有一个值。
  • Map集合中一个key对应一个value,不能存在相同的key值,value值可以相同。
  • key和value之间存在单向一对一关系,即通过指定的key总能找到唯一确定的value
  • Map接口的常用实现类有:HashMapHashtableLinkedHashMapTreeMapConcurrentHashMap