Java集合详解

2023-08-06 1404阅读

温馨提示:这篇文章已超过595天没有更新,请注意相关的内容是否还可用!

一旦在初始化数组时指定了数组长度,数组的长度就是不可变的。这种数据看起来就像两个数组,但是两个数组的元素之间存在一定的关系。为了保存不确定数量的数据,以及以映射关系保存数据,Java提供了集合类。集合类主要负责保存和持有其他数据,因此集合类也称为容器类。所有Java集合类都位于java.util包下,提供了表示和操作对象集合的统一框架,包括大量的集合接口,以及这些接口的实现类和操作它们的算法。集合类与数组不同。Java集合类型分为Collection和Map,它们是Java集合的根接口,这两个接口又包含一些子接口或者实现类。Queue是Java提供的队列实现,有点类似于List。

编程时,可以使用数组保存多个对象,但数组的长度不能改变。 一旦在初始化数组时指定了数组长度,数组的长度就是不可变的。 如果需要存储数量不同的数据,数组就有些无能为力了。 而且数组不能用映射关系来保存数据。 例如,成绩单是语文——79,数学——80。 这种数据看起来就像两个数组,但是两个数组的元素之间存在一定的关系。

为了保存不确定数量的数据,以及以映射关系(也称为关联数组)保存数据,Java提供了集合类。 集合类主要负责保存和持有其他数据,因此集合类也称为容器类。 所有Java集合类都位于java.util包下,提供了表示和操作对象集合的统一框架,包括大量的集合接口,以及这些接口的实现类和操作它们的算法。

集合类与数组不同。 数组元素可以是基本类型的值,也可以是对象(实际上保存对象的引用变量),而集合只能保存对象(实际上只保存对象的引用变量,但通常习惯认为数组中保存的是什么集合是一个对象)。

Java集合类型分为Collection和Map,它们是Java集合的根接口,这两个接口又包含一些子接口或者实现类。 图1和图2分别是Collection和Map的子接口及其实现类。

图1 Collection接口基本结构

图2 Map接口基本结构

在图1和图2中,黄色块是集合的接口,蓝色块是集合的实现类。 表 1 描述了这些接口的作用。

表1 Java集合接口功能 接口名称功能

迭代器接口

集合的输出接口主要用于遍历输出(即迭代访问)Collection集合中的元素,而Iterator对象称为迭代器。 迭代器接口是集合接口的父接口,当实现类实现Collection时,必须实现Iterator接口。

采集接口

它是List、Set和Queue的父接口,也是存储单个值集合的最大接口。 所谓单值,是指集合中的每个元素都是一个对象。 一般很少直接使用这个接口来直接操作。

队列接口

Queue是Java提供的队列实现,有点类似于List。

到期接口

它是Queue的子接口,Queue是双向队列。

列表界面

是最常用的接口。 它是一个允许相同元素的有序集合。 使用List可以精确控制每个元素的插入位置,并且用户可以使用索引(元素在List中的位置,类似于数组下标)来访问List中的元素,类似于数组。

设置界面

不能包含重复的元素。

地图界面

它是最大的存储值对的接口,即接口中的每个元素都是一对,以key➡value的形式存储。

对于Set、List、Queue和Map这四种集合,Java中最常用的实现类是HashSet、TreeSet、ArrayList、ArrayDueue、LinkedList和HashMap、TreeMap等。表2描述了集合中这些常用的实现类。

表2 Java集合实现类的作用 类名的作用

java集合的表示方法_java中集合的概念_java集合写法

哈希集

一个为了优化查询速度而设计的Set。它是基于HashMap实现的。 HashSet底层使用HashMap来保存所有元素,实现也比较简单。

树集

实现Set接口,是一个有序Set,这样就可以从Set中提取有序序列

数组列表

用数组实现的List,可以进行快速随机访问,效率高,并且实现了可变大小的数组

数组到期

是一个基于数组实现的双端队列,集合元素按照“先进先出”的方式进行操作

链表

针对顺序访问进行了优化,但对于随机访问相对较慢。此外,它还有addFirst()、addLast()、getFirst()、getLast()、removeFirst()和removeLast()等方法,可以用作堆栈(Stack)或队列(Queue)

哈萨地图

根据哈希算法访问关键对象

树形图

关键对象可以排序

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]