【java集合】01.集合的引入

Posted by Hilda on September 4, 2025

1.集合的引入

java集合也叫容器。主要是由两大接口派生而来:一个是 Collection接口,主要用于存放单一元素;另一个是 Map 接口,主要用于存放键值对。对于Collection 接口,下面又有三个主要的子接口:ListSetQueue

  • List(对付顺序的好帮手): 存储的元素是有序的、可重复的。
  • Set(注重独一无二的性质): 存储的元素不可重复的。
  • Queue(实现排队功能的叫号机): 按特定的排队规则来确定先后顺序,存储的元素是有序的、可重复的。
  • Map(用 key 来搜索的专家): 使用键值对(key-value)存储,类似于数学上的函数 y=f(x),”x” 代表 key,”y” 代表 value,key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。

容器:用来存储数据,比如数组,链表等等。

这里说的存储是指内存层面的存储,不是持久化存储(持久化存储有:.txt,.avi,.jpg,数据库)。


数组:特点:

(1)数组一旦指定了长度,那么长度就被确定了,不可以更改。

int[] arr = new int[6];

(2)数组一旦声明了类型以后,数组中只能存放这个类型的数据。数组中只能存放同一种类型的数据。

int[] arr,String[] s,double[] d…..


数组:缺点:

(1)数组一旦指定了长度,那么长度就被确定了,不可以更改。

(2)删除,增加元素 效率低。

(3)数组中实际元素的数量是没有办法获取的,没有提供对应的方法或者属性来获取

(4)数组存储:有序,可重复 ,对于无序的,不可重复的数组不能满足要求。

正因为上面的缺点,引入了一个新的存储数据的结构—》集合

集合一章会学习很多集合,为什么要学习这么多集合呢?

因为不同集合底层数据结构不一样。集合不一样,特点也不一样

1.1总结

  • 数组 是一种 静态、低级 的数据结构。它直接对应于内存中的一段连续空间,访问速度快(通过索引),但灵活性差,无法动态改变大小。你可以把它看作是Java语言对底层硬件存储的一种直接映射。
  • 集合框架 (Java Collections Framework) 是一套 高级、动态 的工具。它抽象了各种数据存储结构(如链表、哈希表、树),并提供了一套统一、丰富的接口(ListSetMap等)和实现类(ArrayListHashSetHashMap等)。它的设计目标是提供更强大的功能和更好的灵活性,让你在编程时不必关心底层内存分配的细节。

简单来说,数组是基础,集合是建立在数组等基础结构之上的、功能更强大的抽象。

  • 如果你关心的是 元素的顺序,并且需要 频繁地在末尾添加或删除 元素,那么像 ArrayList 这样底层基于动态数组的集合就是很好的选择。
  • 如果你需要 频繁地在中间插入或删除 元素,那么像 LinkedList 这样底层基于链表的集合就会比 ArrayList 效率高得多。
  • 如果你关心的是 元素的唯一性,并且 不关心元素的顺序,那么 HashSet 这样底层基于哈希表的集合是最佳选择。它可以保证元素不重复,并且查找速度极快。
  • 如果你需要存储的是 键值对 (Key-Value pairs),那么 HashMap 这样底层基于哈希表的集合是唯一且最优的选择。

每种集合都有其独特的性能特点和适用场景。学习它们,是为了让你在面对不同的编程任务时,能够选择最合适的“工具”,从而写出更高效、更健壮的代码。

2.简要集合结构图

面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

  • 数组虽然也可以存储对象,但长度是固定的;集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。
  • 集合类的特点:集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

image-20250904143158901

image-20250904143334514 image-20250904145356914