集合算法-动态数组、哈希表、队列、栈
集合能大幅简化代码、提升效率尤其是处理动态数据、快速查找、优先级处理等场景在java中集合框架分为两大体系单列集合List、Set存储单个元素双列集合Map存储键值对只需要掌握高频实用的5种即可ArrayList、HashSet、HashMap、Deque栈 / 队列。1. ArrayList动态数组核心作用替代普通数组解决普通数组长度固定的问题竞赛中处理动态增长的列表比如存储输入数据、结果集。优势随机访问快O (1)增删尾部元素快O (1)适合需要频繁读取、尾部修改的场景。核心语法importjava.util.ArrayList;importjava.util.Collections;publicclassMain{publicstaticvoidmain(String[]args){// 1. 初始化ArrayListIntegerlistnewArrayList();// 2. 增添加元素尾部/指定位置list.add(5);// 尾部添加[5]list.add(0,3);// 索引0添加[3,5]list.addAll(list);// 批量添加[3,5,3,5]// 3. 删按索引/元素删除list.remove(1);// 删除索引1的元素[3,3,5]list.remove(Integer.valueOf(3));// 删除第一个值为3的元素[3,5]// 4. 查按索引/判断存在intvallist.get(1);// 获取索引1的元素5booleanhas5list.contains(5);// 判断是否包含5trueintindexlist.indexOf(3);// 找元素3的第一个索引0// 5. 改修改指定索引元素list.set(0,10);// [10,5]// 6. 遍历竞赛常用两种方式// 方式1普通for需要索引时用for(inti0;ilist.size();i){System.out.print(list.get(i) );}// 方式2增强for仅遍历for(intnum:list){System.out.print(num );}// 7. 竞赛高频操作排序、反转、清空Collections.sort(list);// 升序排序[5,10]Collections.reverse(list);// 反转[10,5]list.clear();// 清空集合}}2. HashSet无序不重复集合核心作用快速去重、快速判断元素是否存在O (1)竞赛中常用于 “判重”“统计唯一元素” 场景比如判断数组是否有重复元素、找两个数组的交集。核心特点无序、无重复、允许 null但竞赛中少用 null底层是哈希表。核心语法importjava.util.HashSet;importjava.util.Set;publicclassMain{publicstaticvoidmain(String[]args){// 1. 初始化SetIntegersetnewHashSet();// 2. 增添加元素重复元素自动忽略set.add(1);set.add(2);set.add(1);// 重复不会添加// 3. 删删除元素set.remove(2);// 删除值为2的元素// 4. 查判断元素是否存在竞赛最常用booleanhas1set.contains(1);// truebooleanhas3set.contains(3);// false// 5. 遍历无索引只能增强forfor(intnum:set){System.out.print(num );// 输出1}// 6. 竞赛高频转数组/集合Integer[]arrset.toArray(newInteger[0]);// 转数组ArrayListIntegerlistnewArrayList(set);// 转ArrayList// 7. 清空/长度intsizeset.size();// 1set.clear();}}3. HashMap键值对映射核心作用通过 “键” 快速找 “值”O (1)竞赛中常用于 “统计频次”“映射关系”比如统计数组中每个元素出现的次数、字符串字符计数。核心特点键唯一、值可重复无序。核心语法importjava.util.HashMap;importjava.util.Map;publicclassMain{publicstaticvoidmain(String[]args){// 1. 初始化键字符串值出现次数MapString,IntegermapnewHashMap();// 2. 增/改put键存在则改值不存在则新增map.put(a,1);map.put(b,2);map.put(a,3);// 键a已存在值改为3// 3. 查get键不存在返回nullintcountAmap.get(a);// 3intcountCmap.getOrDefault(c,0);// 键c不存在返回默认值0竞赛必用避免NullPointerException// 4. 判是否包含键/值booleanhasKeyAmap.containsKey(a);// truebooleanhasValue2map.containsValue(2);// false因为b的值被删了不上面b的值是2还在// 5. 删删除键值对map.remove(b);// 删除键为b的键值对// 6. 遍历竞赛两种常用方式// 方式1遍历所有键最常用for(Stringkey:map.keySet()){intvaluemap.get(key);System.out.println(key:value);// a:3}// 方式2遍历键值对for(Map.EntryString,Integerentry:map.entrySet()){Stringkeyentry.getKey();intvalueentry.getValue();System.out.println(key:value);}// 7. 大小/清空intsizemap.size();// 1map.clear();}}4. Deque双端队列替代 Stack/Queue核心作用既可以当栈后进先出也可以当队列先进先出竞赛中替代StackStack是旧类效率低用于 DFS栈、BFS队列。优势效率高、功能全。核心语法importjava.util.Deque;importjava.util.LinkedList;publicclassMain{publicstaticvoidmain(String[]args){DequeIntegerdequenewLinkedList();// 1. 当队列用FIFO尾部加头部取deque.offer(1);// 尾部添加deque.offer(2);intqHeaddeque.poll();// 取出头部1// 2. 当栈用LIFO头部加头部取替代Stackdeque.push(3);// 头部添加等价于addFirstdeque.push(4);intsTopdeque.pop();// 取出头部4等价于pollFirst// 3. 查头部/尾部不删除intpeekHeaddeque.peek();// 头部3intpeekTaildeque.peekLast();// 尾部2}}

相关新闻

python基于flask的社区驿站快递管理系统-vue pycharm django

python基于flask的社区驿站快递管理系统-vue pycharm django

目录技术栈选择系统模块设计开发步骤部署与测试扩展性考虑关键依赖开发技术路线源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!技术栈选择 后端采用Python的Flask框架,轻量灵活适合快速开发;前端使用Vue.js构建交…

2026/7/2 21:11:58 阅读更多 →
Android 开发 Uri 临时授权问题:opening provider FileProvider from ProcessRecord that is not exported

Android 开发 Uri 临时授权问题:opening provider FileProvider from ProcessRecord that is not exported

InputStream inputStream getContentResolver().openInputStream(uri)在 Android 开发中,服务端向客户端返回 Uri,客户端在读取 Uri 时,出现如下错误信息 java.lang.SecurityException: Permission Denial: opening provider androidx.core.…

2026/7/3 23:04:13 阅读更多 →
基于Java+SSM+Flask网上订餐管理系统(源码+LW+调试文档+讲解等)/在线订餐系统/网络订餐软件/订餐管理平台/外卖订餐系统/网上订餐服务/订餐系统开发/订餐网站设计/网上订餐平台

基于Java+SSM+Flask网上订餐管理系统(源码+LW+调试文档+讲解等)/在线订餐系统/网络订餐软件/订餐管理平台/外卖订餐系统/网上订餐服务/订餐系统开发/订餐网站设计/网上订餐平台

博主介绍 💗博主介绍:✌全栈领域优质创作者,专注于Java、小程序、Python技术领域和计算机毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 2025-2026年最新1000个热门Java毕业设计选题…

2026/7/3 9:26:15 阅读更多 →

最新新闻

BigFunctions终极指南:如何用150+函数超级增强BigQuery能力

BigFunctions终极指南:如何用150+函数超级增强BigQuery能力

BigFunctions终极指南:如何用150函数超级增强BigQuery能力 【免费下载链接】bigfunctions Supercharge BigQuery with BigFunctions 项目地址: https://gitcode.com/gh_mirrors/bi/bigfunctions BigFunctions是一个革命性的开源框架,它通过150预建…

2026/7/4 8:37:21 阅读更多 →
THSTrader完全指南:5步配置雷电模拟器与同花顺APP实战教程

THSTrader完全指南:5步配置雷电模拟器与同花顺APP实战教程

THSTrader完全指南:5步配置雷电模拟器与同花顺APP实战教程 【免费下载链接】THSTrader 量化交易工具。同花顺手机版模拟炒股python API,基于uiautomator2和图色方法实现。【可自行扩展到实盘】 项目地址: https://gitcode.com/gh_mirrors/th/THSTrader…

2026/7/4 8:35:20 阅读更多 →
用AI变声神器RVC实现10分钟语音转换:从零开始的完整实战指南

用AI变声神器RVC实现10分钟语音转换:从零开始的完整实战指南

用AI变声神器RVC实现10分钟语音转换&#xff1a;从零开始的完整实战指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-C…

2026/7/4 8:31:20 阅读更多 →
从“是什么“到“为什么“:现代系统诊断工具witr如何重新定义进程分析范式

从“是什么“到“为什么“:现代系统诊断工具witr如何重新定义进程分析范式

从"是什么"到"为什么"&#xff1a;现代系统诊断工具witr如何重新定义进程分析范式 【免费下载链接】witr Why is this running? 项目地址: https://gitcode.com/GitHub_Trending/wi/witr 在当今复杂的系统环境中&#xff0c;当进程异常消耗资源、端…

2026/7/4 8:29:19 阅读更多 →
如何用Flask-profiler定位最耗时的API端点?实战案例分享

如何用Flask-profiler定位最耗时的API端点?实战案例分享

如何用Flask-profiler定位最耗时的API端点&#xff1f;实战案例分享 【免费下载链接】flask-profiler a flask profiler which watches endpoint calls and tries to make some analysis. 项目地址: https://gitcode.com/gh_mirrors/fl/flask-profiler Flask-profiler是…

2026/7/4 8:29:19 阅读更多 →
FlipperZeroHondaFirmware工作原理深度解析:433MHz RF信号捕获技术

FlipperZeroHondaFirmware工作原理深度解析:433MHz RF信号捕获技术

FlipperZeroHondaFirmware工作原理深度解析&#xff1a;433MHz RF信号捕获技术 【免费下载链接】FlipperZeroHondaFirmware Custom Firmware for the Flipper Zero, to add support for Honda key fobs (FCC ID: KR5V2X) 项目地址: https://gitcode.com/gh_mirrors/fl/Flippe…

2026/7/4 8:23:17 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布&#xff0c;这是一个关键的安全修复版本&#xff0c;修复了多个方面的问题&#xff0c;还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出&#xff0c;mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南&#xff1a;使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL&#xff08;Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器&#xff0c;与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻