专业的JAVA编程教程与资源

网站首页 > java教程 正文

数据结构之集合体系概览 带你了解集合体系中有哪些重要的分类

temp10 2024-11-17 01:59:38 java教程 11 ℃ 0 评论

集合体系。

提莫 Teemo。

数据结构之集合体系概览 带你了解集合体系中有哪些重要的分类

哈喽大家好,我是提莫。

1. 这一集来看一下 Java 中的集合体系。

2. 这节要讲的内容非常简单,就看这一张图就可以了。这里我列出来的 Java 集合体系中的部分的接口和类,这也是平时用的最多的一些类。在这里有一个顶级的接口叫做 Collection 集合。

3. 什么是集合?就是存放一组元素的集合,例如一堆苹果、一堆房子、一堆糖果等等,它是不是都是很多个同类的元素,这种就叫做集合。在下面它又对它进行了两个划分,分别是 List 跟 Set。

4. 这两个分类有什么区别?List 里面是存放一些有序的、可以重复的元素,例如 abcda,这里 a 是不是重复了?如果是用 List 放就可以保存两个 a,并且放进去时候的顺序跟取出来的顺序是一样的。而 Set 里面存放的元素是不能够重复的,它会自动地把那些重复的元素给合并掉,并且存放进去的顺序跟取出来的顺序不一定是相同的。也就说集合下面这两个体系,一个是有序可重复,另一个是无序不可重复。这里注意它们还是接口,是不是不可以直接使用,所以会用它们的实现类。这里主要是这三个实现类。

5. ArrayList 下面分别是 LinkedList 跟 ArrayList,就用的上一节讲的数组来作为它的底层实现。而 LinkedList 的底层就使用的是上节讲的链表来实现。这里回顾一下数组来实现有什么好处?是不是查找快,但是对中间元素的修改或者是删除是很慢的。而链表的查询比较慢,但是对中间元素的修改删除是很快的。

6. 再说一下 Set 的实现类,是 HashSet,但是看它的名称就能看出来,它是通过 Hash 这种结构来实现的。什么是 Hash?在这里 Hash 表又被称为散列表,它是通过 Hash 算法把存进来的元素通过这个算法计算出来一个位置,然后存到对应的位置。在这里简单的画个图,例如这里有一张 Hash 表,每一个元素进来的时候就会去通过 Hash 算法给元素计算得到一个位置,然后就存在这里。存在这里或者是存在这里,当获取元素的时候直接获取它的元素就可以了。但是由于 Hash 算法的原因,所以它存进去的顺序并不一定是按照某种固定的顺序存放,所以到时候取的时候它跟存进去的顺序并不一定相同。

7. 本节主要就是理解集合的体系,它们的顶级接口是不是 Collection?下面分为两个大类,分别是 List 跟 Set。这里需要掌握 List 的优缺点,Set 的优缺点以及 List 有哪几个主要的实现类,Set 有哪些主要的实现类,掌握到这里就可以了。下一节再见。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表