当前位置: 首页 > news >正文

JAVA算法之List、Set、Map核心操作速记表(易背版)

JAVA算法之List、Set、Map核心操作速记表(易背版)

在Java开发中,List、Set、Map是最常用的三大集合,核心操作繁多且易混淆,尤其是新手在面试或开发中,经常需要快速回忆相关方法。本文整理了三大集合的核心操作速记表,搭配通俗解析和易背口诀,帮你快速记住关键用法,避开常见坑,适合新手入门和老开发快速回顾。

核心原则:记操作先记“核心功能”,再记“特有方法”,同类操作(增删改查)归为一类,避免零散记忆!

一、三大集合核心操作速记总表

表格按“集合类型→核心操作(增删改查/特有)→方法速记→易错点”整理,重点标注高频方法和易混淆点,方便直接背诵。

集合类型操作分类核心方法(速记版)易背口诀易错点提醒
List(有序、可重复、有索引)add(E)、add(int, E)、addAll(Collection)增有俩add,索引可插入,.addAll批量加add(int, E) 索引越界会报IndexOutOfBoundsException
remove(int)、remove(Object)、removeAll(Collection)删分索引删、对象删,批量删除用removeAllremove(int)和remove(Object)重载,避免传错参数(如int型数字)
set(int, E)改值用set,索引+新值,一步到位set不能新增元素,索引必须存在,否则越界
查/特有get(int)、indexOf(Object)、size()、isEmpty()、subList(int, int)查用get加索引,indexOf找位置,subList取子串subList返回的是原List的视图,修改会影响原集合
Set(无序、不可重复、无索引)add(E)、addAll(Collection)增只有add,重复元素加不进add返回boolean,重复添加返回false,不报错
remove(Object)、removeAll(Collection)、clear()删用对象删,无索引别瞎传,clear清空全删除Set无索引,不能用remove(int),会报编译错误
无直接改法(需先删后加)Set要改值,先删旧对象,再添新对象直接修改元素属性(如对象字段),不会影响Set的去重判断
查/特有contains(Object)、size()、isEmpty()、iterator()查用contains,遍历用迭代,无索引别getHashSet无序,TreeSet有序(自然排序/比较器排序)
Map(键值对、键唯一、值可重复)增/改put(K, V)、putAll(Map)、putIfAbsent(K, V)put增改兼用,键存在改值,不存在新增;putIfAbsent防覆盖键为null:HashMap允许1个null键,TreeMap不允许null键
remove(Object)、remove(K, V)、clear()删按键删,也可键值匹配删,clear清空所有键值对remove(K, V)只有键和值都匹配时才删除,返回boolean
get(K)、containsKey(K)、containsValue(V)、size()、isEmpty()查值用get加键,查键用containsKey,查值用containsValueget(K)若键不存在,返回null,需注意空指针
特有keySet()、values()、entrySet()keySet取所有键,values取所有值,entrySet取键值对entrySet遍历效率高于keySet(减少get查询)

二、分集合速记解析(加深记忆)

结合速记表,补充每个集合的核心特点和高频用法,帮你把“口诀”转化为“实用能力”,避免只会背不会用。

1. List 集合(重点:索引操作)

核心特点:有序(插入顺序=遍历顺序)、可重复、有索引,常用实现类:ArrayList、LinkedList。

速记关键:所有操作都围绕“索引”展开,记住“增删改查都能用到索引”,区别于Set和Map。

高频场景:需要按顺序存储、频繁查询(ArrayList)、频繁插入删除(LinkedList)。

易错点补充:ArrayList扩容机制(初始容量10,扩容为1.5倍),LinkedList查询慢(需遍历)。

2. Set 集合(重点:去重)

核心特点:无序(HashSet)/有序(TreeSet)、不可重复、无索引,常用实现类:HashSet、TreeSet。

速记关键:“去重”是核心,无索引所以不能用索引操作,记住“增删查都靠对象,没有get(int)”。

高频场景:需要去重存储(如用户ID)、需要排序的去重场景(TreeSet)。

易错点补充:HashSet去重依赖equals()和hashCode(),重写这两个方法时需保持一致(equals相等,hashCode必相等)。

3. Map 集合(重点:键值对)

核心特点:键值对映射、键唯一、值可重复,常用实现类:HashMap、TreeMap、ConcurrentHashMap。

速记关键:“键是唯一标识”,所有操作围绕“键”展开,put是增改、get是查、remove是删,记住三个核心方法:put、get、remove。

高频场景:需要键值映射(如配置信息、用户信息)、高频查询(HashMap)、有序键值对(TreeMap)。

易错点补充:HashMap线程不安全,多线程场景用ConcurrentHashMap;TreeMap按键排序,需指定比较器或元素实现Comparable接口。

三、通用操作速记(三大集合都适用)

除了各集合的特有操作,以下通用操作无需单独记忆,所有Collection(List、Set)和Map都适用(或类似):

  • 判断空:isEmpty() → 口诀:“空不空,isEmpty”

  • 获取长度:size() → 口诀:“有多少,看size”

  • 清空集合:clear() → 口诀:“清干净,用clear”

  • 判断包含:contains()(Collection)、containsKey()/containsValue()(Map) → 口诀:“含不含,看contains”

  • 批量操作:addAll()、removeAll() → 口诀:“批量增删,加All”

四、背诵技巧(重中之重)

不用死记硬背所有方法,按以下步骤记,效率翻倍:

  1. 先记三大集合的核心特点(有序/无序、可重复/不可重复、有索引/无索引),特点决定操作方式(比如无索引就没有get(int))。

  2. 再记“增删改查”四大类操作,每类记1-2个核心方法,结合口诀(比如List的“增有俩add”)。

  3. 最后记易错点(比如Set无索引、Map键唯一),这些是面试和开发中最容易踩坑的地方。

  4. 每天花5分钟,对照速记表默写1遍核心方法,3天就能熟练记住,遇到场景能快速联想。

五、总结

List、Set、Map的核心操作,本质是围绕各自的“核心特点”设计的:List重索引、Set重去重、Map重键值映射。记住本文的速记表和口诀,避开易错点,无论是笔试刷题、面试问答,还是日常开发,都能快速调用相关方法,不用再反复翻文档。

如果觉得速记表不够细致,或者想补充某类集合的具体用法(如ArrayList和LinkedList对比),可以在评论区留言,后续补充完善~

创作不易,点赞+收藏,方便后续回顾;关注我,持续分享Java基础干货,助力新手快速入门!

http://www.jsqmd.com/news/498313/

相关文章:

  • 用HY-MT1.5-7B搭建智能客服翻译系统,支持33种语言
  • GitHub Java项目Top50:哪些工具能帮你提升开发效率?
  • nlp_structbert_sentence-similarity_chinese-large实战:Java微服务集成与相似度计算API开发
  • Phi-3 Forest LabGPU算力适配:在华为昇腾910B上ACLGraph加速Phi-3推理实测
  • 4步实现大模型本地化部署:从开发测试到边缘应用的全场景落地指南
  • 避坑指南:ECharts地图下钻常见问题排查(基于高德最新行政区划数据)
  • Java八股文实践:从理论到实战,设计高并发语音识别服务
  • 使用OFA-VE和MySQL构建视觉内容检索系统
  • 从智能家居到工业传感器:ADC分辨率选择的5个真实场景避坑指南
  • lingbot-depth-pretrain-vitl-14模型安全机制:软链路径防御㊸与权重完整性校验实现解析
  • TWI接口实战:用Arduino模拟I2C从机设备(附完整代码)
  • 10倍效率提升的歌词管理工具:163MusicLyrics破解音乐爱好者的痛点
  • Gin+Vue项目实战:如何用Go 1.16的embed功能优雅解决静态资源打包问题
  • AIGlasses_for_navigation效果展示:复杂室内环境实时避障导航
  • 如何高效部署通义千问大模型?3个关键步骤与避坑指南
  • Granite TimeSeries FlowState R1 提示工程(Prompt Engineering)入门:如何构建有效的预测指令
  • Hunyuan-MT Pro开源镜像解析:bfloat16显存优化与CUDA自动适配实操
  • 多模态AI助手落地实践:Qwen3-VL:30B+Clawdbot在文档审核、截图答疑中的应用
  • 保姆级教程:ComfyUI Qwen人脸生成图像,手把手教你制作专业人像
  • 3步掌握PowerPaint V2:AI驱动的图片修复与创作工具让效率提升300%
  • UniPush2.0离线推送点击事件失效?可能是这个异步陷阱在作怪
  • 无缝多人游戏开发:ServerTravel实现跨关卡Actor信息传递的实践指南
  • 手把手教你用lora-scripts训练LoRA:从数据准备到模型部署,一篇搞定
  • Arcgis进阶技巧:如何用Shapefile和Editor工具高效绘制水平正方形(含快捷键操作)
  • RISC-V开发实战——汇编与C程序的交叉编译与调试
  • AXI4协议中的ID信号详解:为什么你的Vivado级联Interconnect会报地址冲突?
  • ChatGPT野卡实战指南:从零搭建到生产环境避坑
  • 2026美赛备战:AIGlasses OS Pro在数学建模中的应用
  • 5步部署Ostrakon-VL-8B:专为Food-Service优化的视觉理解模型
  • 新手必看:Windows下learn2learn元学习库安装避坑指南(附Visual Studio配置)