Java中的集合框架

什么是集合


集合和数组一样,是一个用来储存数据的容器。

集合与数组的区别


那之前学习过的有数组这个容器了,那这个集合和数组有什么区别呢?
数组储存的元素类型必须一致。一但定义,长度就不能变动,也就是数组的大小是固定的。

而集合储存的元素就是多样的了,可以储存多种数据类型(只能是引用数据类型,基本数据类型会自动装箱为包装类)。集合的大小是可以变动的。

Collectoin(单列集合)


Collectoin就是单列集合,它和双列集合的不同是,单列集合中的每一个元素都是单独的存在,只呈现一列,所以被称为是单列集合。
Collectoin是一个接口,接口就意味着它是个抽象的,想要使用它里面的方法就必须要用子类对象才行。

Collectoin有两个子接口:List接口和Set接口

List接口的集合是可以重复的,且可以由添加的顺序来控制元素的顺序

Set接口的集合是不允许重复的,且无序排列的(不保证输出顺序,但可以使用排序规则)

List接口

List接口里也是都是抽象的方法,它只不过继承了Collectoin中的抽象方法,想要实现就必须要有实现类。
List中常用的实现类有两个:ArrayList和LinkedList

ArrayList


ArrayList:是最常用的数据存储容器,它的底层是用一个数组数据结构来实现的。所以它有和数组一样的特点:拥有下标,查询快,增删慢

数组是有下标的,这就相当于是门牌号。当需要查找某一元素时,只要知道其对应的下标,就可以方便快捷的查找到想要的元素。但是这样也有一个弊端:当想要在数组的中间插入或者删除元素时,其身后的每一个元素都需要进行顺位修改。所以数组对增删操作是极其不便的。

LinkedList


LinkedList:他的底层是用一个链表数据结构实现的。链表结构的特点就是增删快、查询慢

为什么链表结构的特点是增删快呢?在内存中,元素之间是相互两两连接的。我们知道,数据在内存中是有地址的,链表结构里的每个元素都保存了两个地址(除了开始和结束),第一个元素保存了第二个地址,第二个元素保存了第一个元素和第三个元素的地址,第三个元素保存了第二个元素和第四个元素的地址,以此类推。当我们需要查找某一个元素时,会从第一个元素开始比对。第一个元素并不是,于是顺着第一个元素的地址找到第二个元素。第二个元素也不是,于是顺着第二个元素的地址找到第三个元素。就这样一个一个寻找下去。

所以链表结构对查询的操作是很不方便的。而相应的,这样的储存方式却极大的方便了增删操作。

例如,要在第三个元素和第四个元素之间增加一个元素。第三个元素储存的是二和四的地址,第四个元素储存的是三和五的地址,现在在他俩之间添加一个新元素。这样的地址就变成了:第三个元素储存第二个和新元素的地址,新元素储存的是第三个和第四个元素的地址,第四个元素储存的是新元素和第五个元素的地址。这样说可能有点绕,还是看看图吧。
集合储存元素的方式及添加新元素
这下大致有点理解了吧,添加和删除元素只会影响到其相邻的两个元素,并不会对其他元素产生影响。
所以链表结构的优点就是增删操作非常便捷。缺点就是查找不易。

Set接口

HashSet

TreeSet

Map(双列集合)

HashMap集合

TreeMap集合

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Java 集合框架主要分为两个部分:`java.util` 和 `java.util.concurrent`。其,`java.util` 包含了大部分的集合框架,而 `java.util.concurrent` 则包含了一些并发集合框架。 在 `java.util` 包集合框架主要分为两类:`Collection` 和 `Map`。`Collection` 接口表示一组对象,它是所有集合框架的基础接口,提供了对集合元素的基本操作,例如添加、删除、查找等。`Map` 接口则表示一组键值对,提供了根据键来查找值的操作。 在 `Collection` 接口下,Java 常用的集合框架包括: 1. `List`:有序列表,元素可以重复。常用的实现类有 `ArrayList`、`LinkedList` 和 `Vector`。 2. `Set`:无序集合,元素不可以重复。常用的实现类有 `HashSet`、`LinkedHashSet` 和 `TreeSet`。 3. `Queue`:队列,元素按照一定的顺序进行排列,常用的实现类有 `LinkedList` 和 `PriorityQueue`。 4. `Deque`:双端队列,可以在队列的两端进行插入和删除操作,常用的实现类有 `ArrayDeque` 和 `LinkedList`。 在 `Map` 接口下,Java 常用的集合框架包括: 1. `HashMap`:无序键值对集合,键不可以重复。 2. `LinkedHashMap`:有序键值对集合,键不可以重复。 3. `TreeMap`:有序键值对集合,键可以按照自然顺序进行排序。 4. `Hashtable`:与 `HashMap` 类似,但是是线程安全的,不推荐使用。 总之,Java 集合框架提供了丰富的数据结构和算法,可以大大简化程序的开发,提高程序的效率和可维护性。需要根据具体的需求来选择合适的集合框架和实现类。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值