2.2说说java中常见的集合类

简介: Java集合框架包含Collection和Map两大体系。Collection有List(有序可重复)和Set(无序唯一)两个子接口,常见实现类有ArrayList、LinkedList、Vector和HashSet等;Map接口用于存储键值对,常见实现有HashMap、TreeMap、Hashtable和ConcurrentHashMap。其中,ArrayList基于数组,查询快;LinkedList基于链表,增删快;HashMap基于哈希表,支持高效存取,而ConcurrentHashMap则提供高并发性能。

2.2说说java中常见的集合类
重要的集合接口以及实现类参考下图
classDiagram
class Collection {<>} class List {<>} class Set{<>} class Map{
<>
entrySet0
keySet0

values0*

Collection <|--List Collection <|--Set List <..ArrayList List <..LinkedList List <..Vector Set <|..HashSet Map <..HashMap Map <..TreeMap Map <..Hashtable
Map <..ConcurrentHashMap HashMap <.LinkedHashMap Set <--Map
Collection <--Map
接口
。接口四个:Collection,List,Set,Map,它们的关系:
Collection是父接口,List和Set是它的子接口.Map接口与其它接口的关系
Map调用entrySet0,keySet0方法时,会创建Set的实现 Map调用values0方法时,会用到Collection的实现 List实现(常见三个)
.ArrayList基于数组实现
。随机访问(即根据索引访问)性能高
,增,删由于要移动数组元素,性能会受影响
[进阶]但如果增,删操作的是数组尾部不牵涉移动元素.LinkedList基于链表实现
随机访问性能低,因为需要顺着链表一个个才能访问到某索引位置增,删性能高
[进阶]说它随机访问性能低是相对的,如果是头尾节点,无论增删改查都快
.[进阶]说它增删性能高也是有前提的,并没有包含定位到该节点的时间,把这个算上,增删性能并不高.Vector基于数组实现
相对于前两种List实现是线程安全的
[进阶]一些说法说 Vector 已经被舍弃,这是不正确的 Set 实现
.HashSet 内部组合了HashMap,利用Map key唯一的特点来实现Set
。集合中元素唯一,注意需要为元素实现hashCode 和equals方法
[进阶]Set的特性只有元素唯一,有些人说Set无序,这得看实现,例如HashSet无序,但TreeSet有序
Map实现(常见五个)
.HashMap底层是Hash表,即数组+链表,链表过长时会优化为红黑树
。集合中Key要唯一,并且它需要实现hashCode和equals方法
.LinkedHashMap基于HashMap,只是在它基础上增加了一个链表来记录元素的插入顺序
[进阶]这个链表,默认会记录元素插入顺序,这样可以以插入顺序遍历元素
[进阶]这个链表,还可以按元素最近访问来调整顺序,这样可以用来做LRUCache的数据结构.TreeMap底层是红黑树
.Hashtable底层是 Hash表,相对前面三个实现来说,线程安全
[进阶]它的线程安全实现方式是在put,get等方法上都加了synchronized,锁住整个对象.ConcurrentHashMap底层也是Hash表,也是线程安全的
.[进阶]它的put方法执行时仅锁住一个链表,并发度比Hashtable高[进阶]它的get方法执行不加锁,是通过volatile保证数据的可见性

相关文章
|
5天前
|
弹性计算 搜索推荐 应用服务中间件
最新版:阿里云服务器收费价格表一年、1个月和1小时费用标准清单
2025年阿里云服务器最新优惠价格表出炉!轻量应用服务器低至38元/年起,ECS云服务器2核2G仅99元/年,4核16G 89元/月,8核32G 160元/月,香港轻量服务器25元/月起,带宽高达200M,不限流量,新老用户同享,续费同价,限时秒杀,性价比极高。
|
1月前
|
人工智能 并行计算 算法
为什么 OpenSearch 向量检索能提速 13 倍?
本文介绍在最新的 OpenSearch 实践中,引入 GPU 并行计算能力 与 NN-Descent 索引构建算法,成功将亿级数据规模下的向量索引构建速度提升至原来的 13 倍。
603 24
为什么 OpenSearch 向量检索能提速 13 倍?
|
4天前
|
移动开发 小程序 前端开发
小程序开发平台有哪些?哪个好
小程序项目落地的第一步,也是最关键的一步,就是开发平台的精准选型。它不仅影响项目的开发周期与成本投入,更直接决定了后续业务的适配度和运营上限。企业需结合自身技术能力、预算区间、功能需求等核心要素综合权衡。本文将对主流小程序开发平台进行分类拆解,通过详细对比和场景化推荐,帮助不同类型的企业找到最契合的解决方案。
114 9
|
9天前
|
Java Nacos Sentinel
SpringCloud 微服务解决方案:企业级架构实战
全面介绍 SpringCloud 微服务解决方案,涵盖服务注册发现、网关路由、熔断限流、分布式事务等企业级实践
|
9天前
|
人工智能 运维 安全
助力企业构建 AI 原生应用,函数计算FunctionAI 重塑模型服务与 Agent 全栈生态
在 AI 技术应用落地进程中,目前面临着五大核心挑战:开发/学习门槛过高,部署运维阶段复杂,AI 应用安全备受挑战,生态能力方面存在严重的割裂与锁定现象,同时资源成本高昂且利用率低下。这些挑战极大地阻碍了 AI 技术的广泛普及以及应用效率的有效提升。阿里云函数计算(FC)依托 Serverless AI 基础设施与全栈能力的创新突破,推出 Function AI(函数智能),精准攻克上述痛点问题,全面推动 AI 应用在开发至运维的全流程中实现降本增效。
|
12天前
|
UED
1688店铺数字营销启动指南:四大关键指标助你有效提升流量
本文系统梳理了1688店铺启动数字营销的四大关键指标:店铺层级达L3以上、新灯塔评分4.5+、层级排名前100、金冠产品占比超30%。达标后投放更易获流量加权,提升推广效能,助力商家实现可持续增长。
|
28天前
|
数据采集 JSON API
京东工业平台商品详情API
京东工业平台商品详情API基于HTTPS和JSON,提供商品基础信息、SKU规格及批量查询功能,支持分钟级价格库存更新。开发者需注册企业账号并完成签名认证,单次请求可获取最多20个SKU数据,高效便捷,适用于工业品电商集成与数据同步场景。
193 44
|
5天前
|
人工智能 自然语言处理 搜索推荐
构建AI智能体:四十六、Codebuddy MCP 实践:用高德地图搭建旅游攻略系统
本文提出了一种基于MCP协议与高德地图API的智能旅游攻略系统,旨在解决传统旅游信息碎片化、时效性差等问题。系统通过整合多源数据,实现动态路线规划、个性化推荐等功能,支持自然语言交互和多模态展示。技术层面,MCP协议作为核心枢纽,标准化了工具调用和错误处理;高德地图API则提供地理智能、时空分析等能力。系统可生成包含景点、美食、住宿等信息的完整攻略,并支持临时发布共享。实践表明,该系统能有效降低用户规划成本,为旅游行业数字化转型提供参考。
92 13
|
4天前
|
消息中间件 Prometheus 监控
百万 QPS 不是洪水猛兽:高流量服务的采样、聚合与可视化,咱得这么干!
百万 QPS 不是洪水猛兽:高流量服务的采样、聚合与可视化,咱得这么干!
61 12