【集合简要】

🌠作者:@TheMythWS.

🎇座右铭:不走心的努力都是在敷衍自己,让自己所做的选择,熠熠发光。

 

55fed1fdb55744eb906c5fb92f79d75f.jpeg

目录

1️⃣什么是集合

2️⃣集合结构图

3️⃣集合的应用场景


 

1.什么是集合

【1】数组,集合都是对多个数据进行存储操作的,简称为容器
PS:这里的存储指的是内存层面的存储,而不是持久化存储(.txt,.avi,.jpg,数据库)。

【2】数组:特点:
(1)数组一旦指定了长度,那么长度就被确定了,不可以更改。
int[] arr = new int[6];
(2)数组一旦声明了类型以后,数组中只能存放这个类型的数据。数组中只能存放同一种类型的数据。
int[] arr,String[] s,double[] d.....

【3】数组:缺点:
(1)数组一旦指定了长度,那么长度就被确定了,不可以更改。
(2)删除,增加元素  效率低。
(3)数组中实际元素的数量是没有办法获取的,没有提供对应的方法或者属性来获取
(4)数组存储:有序,可重复 ,对于无序的,不可重复的数组不能满足要求。

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

【5】集合一章我们会学习很多集合,为什么要学习这么多集合呢?
因为不同集合底层数据结构不一样。集合不一样,特点也不一样

Java集合是一组用于存储和操作对象的容器类。它提供了各种数据结构和算法,用于管理和操作对象的集合。Java集合框架提供了一组接口和类,用于表示不同类型的集合,包括列表、集合、映射和队列等。

Java集合框架的核心接口包括:

Collection:表示一组对象的集合。它是最基本的集合接口,定义了一些通用的操作,如添加、删除、查找、迭代等。
List:有序集合,允许重复元素。可以通过索引访问元素。
Set:无序集合,不允许重复元素。元素是唯一的。
Queue:队列,通常以先进先出(FIFO)的方式处理元素。
Map:表示键值对的映射集合。它提供了通过键查找值的功能。键是唯一的,值可以重复。
HashMap:基于哈希表实现的无序键值对集合。
TreeMap:基于红黑树实现的有序键值对集合。
Java集合框架还提供了一些实用工具类,如Collections和Arrays,用于操作和转换集合。

Java集合框架的设计目标是提供高性能、类型安全、可扩展和易用的集合类,以满足各种应用场景的需求。它提供了丰富的功能和灵活的接口,可以方便地处理各种数据集合操作。

2.集合结构图

简要集合结构图:

29efe85396414bbf95c2051a9a12fc68.png

比较完善的集合结构图:

deaadf18a6764f148657b84630502c5e.png

1. Collection:是一个接口,包含了大部分容器常用的一些方法 
2. List:是一个接口,规范了ArrayList 和 LinkedList中要实现的方法 
ArrayList:实现了List接口,底层为动态类型顺序表 
LinkedList:实现了List接口,底层为双向链表 
3. Stack:底层是栈,栈是一种特殊的顺序表 
4. Queue:底层是队列,队列是一种特殊的顺序表
5. Deque:是一个接口 
6. Set:集合,是一个接口,里面放置的是K模型 
HashSet:底层为哈希桶,查询的时间复杂度为O(1) 
TreeSet:底层为红黑树,查询的时间复杂度为O(log2N),关于key有序
7. Map:映射,里面存储的是K-V模型的键值对 
HashMap:底层为哈希桶,查询时间复杂度为O(1) 
TreeMap:底层为红黑树,查询的时间复杂度为O(log2N),关于key有序

3.集合的应用场景

前端后端数据库交互:

e21024b71ff349acaebc01dcb9e89629.png

当需要将相同结构的个体整合到一起的时候,需要集合

实际应用场合:

c255b28ac1f94a4f8972c1ee57d45aaf.png

926e802730f340b3a0be5b0258835951.png

其它应用场景:

数据库操作:在Java应用程序中,可以使用集合来存储和操作数据库检索的结果集。将查询结果存储在集合中,方便进行筛选、排序和聚合等操作。
缓存管理:集合可以用作缓存的数据结构,将常用的数据存储在内存中,以提高访问速度。通过合适的缓存策略(如LRU)管理集合中的数据。
日志记录:在日志记录中,可以使用集合来存储和管理日志条目。例如,使用ArrayList来存储日志记录,以便进行搜索、过滤和分析。
任务调度:在任务调度系统中,可以使用队列(如LinkedBlockingQueue)来管理待处理的任务。生产者可以将任务添加到队列,而消费者可以从队列中获取任务进行处理。
网络通信:在网络通信中,可以使用集合来存储和管理接收到的消息。例如,使用LinkedList来存储接收到的消息队列,并使用HashMap来存储已处理的消息。
图形用户界面(GUI):在GUI应用程序中,集合可以用于存储和管理用户界面组件。例如,使用ArrayList来存储和管理按钮、文本框等组件。
数据分析和处理:在数据分析和处理领域,可以使用集合来存储和处理大量的数据。例如,使用HashSet来去重数据,使用HashMap进行数据的聚合和分组。
并发编程:在多线程编程中,可以使用并发安全的集合类(如ConcurrentHashMap、ConcurrentLinkedQueue)来安全地共享和操作数据。

 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TheMythWS

你的鼓励,我的动力。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值