java 中的集合对象

news/2025/11/7 17:20:45/文章来源:https://www.cnblogs.com/hanease/p/19200388

------------------------------------------------------------------------------------------------------

Java 中的集合框架(java.util 包下)包含众多用于存储和操作对象的容器类,主要分为 Collection 和 Map 两大体系,此外还有一些特殊用途的集合类。以下是常见集合对象的分类及核心特点:

一、Collection 接口(存储单值元素,继承自 Iterable)

1. List(有序、可重复、允许 null)

  • ArrayList
    • 底层基于动态数组实现,查询快(随机访问)、增删慢(需移动元素)。
    • 初始容量 10,扩容机制为 oldCapacity + (oldCapacity >> 1)(1.5 倍)。
    • 线程不安全,适合单线程场景。
  • LinkedList
    • 底层基于双向链表实现,增删快(只需修改指针)、查询慢(需遍历)。
    • 同时实现了 Deque 接口,可作为队列 / 栈使用。
    • 线程不安全。
  • Vector
    • 底层同 ArrayList(动态数组),但线程安全(方法加 synchronized),性能较差。
    • 扩容机制为默认翻倍(可指定增量),已被 ArrayList 替代,不推荐使用。
  • Stack
    • 继承自 Vector,基于数组实现的栈(后进先出),线程安全但性能差,推荐用 Deque 的 push/pop 替代。

2. Set(无序、不可重复、允许 null,最多一个)

  • HashSet
    • 底层基于 HashMap 实现(元素存于 HashMap 的 key 中),无序,查询 / 增删效率高(O (1))。
    • 依赖元素的 hashCode() 和 equals() 保证唯一性,线程不安全。
  • LinkedHashSet
    • 继承自 HashSet,底层用 LinkedHashMap 实现,维护插入顺序(通过链表记录元素顺序)。
    • 性能略低于 HashSet,适合需要顺序的场景。
  • TreeSet
    • 底层基于 红黑树 实现,元素自动排序(自然排序或自定义 Comparator)。
    • 查询 / 增删效率为 O (log n),线程不安全。

3. Queue(队列,FIFO 先进先出,部分支持优先级)

  • ArrayDeque
    • 基于循环数组实现的双端队列(Deque),可作为栈或队列使用,效率高于 LinkedList。
    • 无容量限制(自动扩容),线程不安全。
  • LinkedList
    • 同时实现 Deque 接口,可作为双端队列,增删灵活但查询效率低。
  • PriorityQueue
    • 基于小顶堆实现的优先级队列,元素按优先级排序(自然排序或 Comparator),非 FIFO。
    • 线程不安全,不允许 null 元素。
  • ConcurrentLinkedQueue
    • 线程安全的无界队列,基于链表实现,适合高并发场景(CAS 操作保证安全)。

二、Map 接口(存储键值对 <Key, Value>,Key 唯一)

  • HashMap
    • 底层基于数组 + 链表 / 红黑树实现(JDK 8+ 当链表长度 > 8 时转红黑树),无序。
    • Key 允许 null(仅一个),Value 允许 null,线程不安全,查询 / 增删效率高(O (1))。
    • 初始容量 16,负载因子 0.75,扩容为翻倍。
  • LinkedHashMap
    • 继承自 HashMap,底层多了双向链表维护键值对的插入顺序或访问顺序(可用于 LRU 缓存)。
    • 性能略低于 HashMap,线程不安全。
  • TreeMap
    • 底层基于红黑树实现,Key 自动排序(自然排序或 Comparator)。
    • Key 不允许 null,查询 / 增删效率 O (log n),线程不安全。
  • Hashtable
    • 古老的哈希表实现,线程安全(方法加 synchronized),但性能差。
    • Key 和 Value 均不允许 null,已被 ConcurrentHashMap 替代。
  • ConcurrentHashMap
    • 线程安全的哈希表,JDK 7 基于分段锁,JDK 8+ 基于 CAS + synchronized 实现,并发性能优异。
    • 支持高并发读写,Key 和 Value 不允许 null。
  • WeakHashMap
    • Key 为弱引用,当 Key 不再被强引用时,会被 GC 回收,适合缓存场景(如临时数据)。

三、特殊集合(工具类创建)

  • Collections 工具类
    • Collections.singletonList():不可变单元素 List。
    • Collections.emptyList():空集合(不可变)。
    • Collections.synchronizedList(List):包装为线程安全的 List(同理可包装 Set/Map)。
  • 枚举集合
    • EnumSet:专为枚举类型设计的 Set,底层基于位向量,效率极高。
    • EnumMap:Key 为枚举类型的 Map,底层数组实现,查询快。

四、线程安全集合总结

  • List:Collections.synchronizedList(new ArrayList<>())CopyOnWriteArrayList(写时复制,适合读多写少)。
  • Set:Collections.synchronizedSet(new HashSet<>())CopyOnWriteArraySet
  • Map:ConcurrentHashMapCollections.synchronizedMap(new HashMap<>())
  • Queue:ConcurrentLinkedQueueLinkedBlockingQueue(阻塞队列)、ArrayBlockingQueue(有界阻塞队列)。
选择集合时需关注:是否有序、是否允许重复、线程安全性、增删查效率等,根据场景匹配最合适的实现类。

------------------------------------------------------------------------------------------------------

 

Java 集合框架的继承关系以 Collection 和 Map 为两大根接口,衍生出众多实现类。以下是核心继承关系图(简化版,突出常用类):

一、Collection 体系(单值集合)

plaintext
 
 
Iterable (迭代器接口,所有集合的顶层接口)↓
Collection (单值集合根接口)↓
┌───────────┬────────────┬─────────────┐
│           │            │             │
List        Set          Queue         (三大子接口)
│           │            │
│           │            ├─────────────┬─────────────┐
│           │            │             │             │
│           │            Deque         BlockingQueue │
│           │            │             │             │
│           │            ArrayDeque    LinkedBlockingQueue
│           │                           ArrayBlockingQueue
│           │
│           ├────────────┬─────────────┬─────────────┐
│           │            │             │             │
│           HashSet      LinkedHashSet TreeSet       EnumSet
│
├───────────┬────────────┬─────────────┐
│           │            │             │
ArrayList   LinkedList   Vector        Stack(已过时)│CopyOnWriteArrayList(线程安全)
 

二、Map 体系(键值对集合)

plaintext
 
 
Map (键值对集合根接口)↓
┌───────────┬────────────┬─────────────┬─────────────┐
│           │            │             │             │
HashMap     LinkedHashMap TreeMap       Hashtable    WeakHashMap
│                                         │
│                                         Properties(继承自Hashtable,用于配置文件)
│
ConcurrentHashMap(线程安全)
│
EnumMap(键为枚举类型)
 

关键说明:

  1. Iterable:所有集合的顶层接口,提供 iterator() 方法,支持增强 for 循环(for-each)。
  2. Collection:单值集合的根接口,定义了增删改查等通用方法(如 add()remove()size())。
  3. List:有序、可重复,允许 null(如 ArrayList 基于数组,LinkedList 基于链表)。
  4. Set:无序、不可重复,最多一个 null(如 HashSet 基于 HashMap,TreeSet 基于红黑树排序)。
  5. Queue:队列(FIFO),子接口 Deque 支持双端操作(如 ArrayDeque 可作栈 / 队列)。
  6. Map:键值对集合,键唯一(如 HashMap 线程不安全,ConcurrentHashMap 线程安全)。
通过继承关系可快速理解集合的特性(如 LinkedHashSet 继承 HashSet 并维护顺序,TreeMap 实现排序功能)。

------------------------------------------------------------------------------------------------------

 

------------------------------------------------------------------------------------------------------

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/959030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ACM出版 | 往届于会后四个月检索】第二届大数据、神经网络与深度学习研讨会(BDNNDL 2025)

第二届大数据、神经网络与深度学习研讨会(BDNNDL 2025)将于2025年11月14-16日在山东济南举行。【ACM出版 | 山东师范大学主办!】 【往届于会后四个月检索!| EI、Scopus双检索!】 第二届大数据、神经网络与深度学习…

可靠的成都小程序公司2025年推荐列表

摘要 2025年,成都小程序行业持续蓬勃发展,随着数字化转型加速,中小企业对小程序服务的需求日益增长。本文基于市场调研和用户反馈,为您提供2025年成都小程序服务商排名前十的权威列表,旨在帮助中小企业主高效选择…

2025年成都互联网服务商排名前十强:哪家最强?

2025年成都互联网服务商排名前十强:杰诚智享科技领跑 摘要 随着数字化转型加速,2025年成都互联网服务行业呈现爆发式增长,中小企业对线上营销需求激增。本文基于市场调研和用户口碑,为您精选成都地区十大互联网服务…

2025 年 11 月山东黄锈石,黄锈石荔枝面,黄锈石外墙干挂石材厂家最新推荐,实力品牌深度解析采购无忧之选!

引言 随着建筑装饰领域对石材品质要求的升级,山东黄锈石、黄锈石荔枝面及外墙干挂石材的采购需求持续攀升,但市场乱象始终困扰采购方。为精准筛选优质厂家,行业协会联合专业测评机构开展专项测评,以 “原料管控、工…

2025 年 11 月黄锈石异型石材,黄锈石光面,黄锈石仿古石厂家最新推荐,实力品牌深度解析采购无忧之选!

引言 2025 年 11 月,行业协会联合第三方检测机构发布专项测评榜单,聚焦黄锈石异型石材、黄锈石光面、黄锈石仿古石三大品类,为采购方提供权威参考。本次测评历时两个月,覆盖 82 家主流生产企业,采用 12 项核心指标…

2025年成都互联网公司推荐:靠谱服务商榜单

摘要 2025年成都互联网行业持续蓬勃发展,中小企业对线上品牌宣传和获客营销的需求日益增长。本文基于市场调研和用户反馈,为您呈现成都互联网公司排名前十的榜单,并附上详细的公司介绍、核心优势和服务案例,供您参…

APB

目录一、什么是APB总线?二、信号描述三、传输3.1 写传输声明 一、什么是APB总线? APB协议是一种低成本接口,专门用于访问外设的可编程控制寄存器。 该接口采用非流水线式的简单同步协议,每次传输至少需要两个时钟周…

PostgreSQL技术大讲堂 - 第110讲:pg流复制管理repmgr应用实践

PostgreSQL从入门到精通系列课程,100+节PG技术讲解,让你从小白一步步成长为独当一面的PG专业人员,点击这里查看章节内容,持续更新,欢迎加入。 第110讲:重讲pg流复制管理repmgr应用实践内容介绍:1、repmgr工作原…

ModelScope 模型一键上线?FunModel 让你 5 分钟从零到生产

下一个AI爆款应用,或许就从您点击"立即部署"的那一刻开始!一、前言:AI 浪潮下的模型诉求 在当今这个全民 AI 的时代,快速入门 AI,赶上时代的浪潮,成为了大家当下最热切的追求和期盼。于是,模型作为 A…

欧姆龙CQMH寿命管制

因为CQM1H,没有长传送和等于比较

JAVA:Spring Boot 集成 FFmpeg 完成多媒体处理

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Windows如何解决远程连接提示内部错误的问题?

在 Windows 系统中,远程桌面连接提示 “内部错误” 是一个常见问题,可能由网络、配置、服务或系统更新引起。以下是详细的排查与解决方法:1. 常见原因分析网络问题网络不稳定或目标计算机与本地计算机之间的连接中断…

DS(4):从离线与在线角度开始的一些杂谈

CDQ 分治 CDQ 分治的原主旨教义是解决高维数点问题,但是我们发现似乎我们并不总是只用它来解决这种问题,有的时候我们会利用分治做动态问题转静态问题。 一般我们认为这种通过分治来保证一个顺序就是 cdq 分治。通常…

buildroot下的can问题

buildroot下的can问题 问题:参考:https://www.cnblogs.com/yangjinghui/p/17695223.html使能 can-utils 和 iproute2,支持 ip 指令设置 can 波特率、启动以及停止> Target packages> Networking applications…

高一讲课

栈 又叫后进先出表 给出一个栈常用功能的实现 struct sta{int tp,a[(int)1e7];void push(int x){a[++t]=x;}int top(int x){if(t==0)return -1;return a[t];}int size(){return t;}void pop(){if(t==0)return ;else t-…

Windows 10 本地部署本地知识库 RAGFlow + Qwen3 1.7B

参考豆包 https://www.bilibili.com/video/BV1WiP2ezE5a/ (视频教程) https://blog.csdn.net/zengmingen/article/details/143687404 https://zhuanlan.zhihu.com/p/49335520708 https://github.com/infiniflow/ragf…

2025 最新儿童早发育产品口碑推荐榜:药食同源调节性腺轴 + 权威测评认证,十大优选品牌最新推荐

引言 儿童早发育问题已成为家长群体关注的核心健康议题,相关产品市场需求持续攀升,但品质参差的现状让选购决策愈发困难。为提供权威参考,本次榜单联合儿童健康协会、营养监测中心及儿科研究机构,基于《儿童保健杂…

Ubuntu通过命令行安装REALVNC

复制本地安装包文件到其他服务器 scp /home/jzrobot/VNC-Server-6.11.0-Linux-x64.deb jzrobot@192.168.10.149:/home/jzrobot 安装程序 sudo dpkg -i VNC-Server-6.11.0-Linux-x64.deb 激活许可 sudo vnclicense -add…

气氛

即得易见平凡,仿照上例显然。留作习题答案略,读者自证不难。反之亦然同理,推论自然成立。略去过程 $\rm QED$,由上可知证毕。

2025年室内展厅LED显示屏厂家权威推荐榜单:室内沙盘显示屏/室内显示屏/酒店LED显示屏源头厂家精选

在数字化展示时代,室内展厅LED显示屏已成为信息传递与体验升级的核心载体。一份权威的厂家推荐榜单能为您的选择提供可靠参考。 室内展厅LED显示屏作为企业形象展示、产品呈现与信息交互的重要窗口,其技术水准与显示…