java中arraylistsetmap对比及分析
Listary 5是一款最快的文件搜索工具之一。跟其他工具相比Listary更强大的的地方是跟您工作流程的无缝集成:无论您是在资源管理器中整理文件,或者是正在Photoshop中进行设计,任何情况下只要您需要访问文件,Listary就能将您需要的结果通过您喜欢的方式快速且精确的展示
Java四种集合各具特性:数组长度固定,适合随机访问但不可变长;List动态数组,支持灵活增删改查;Set元素唯一,常用HashSet无序、TreeSet自然排序;Map键值映射,键唯一,常用HashMap无序、TreeMap按键有序;按需选型,能有效避免踩坑并提升性能。
Ja va 里的集合框架,说来说去,Array、List、Set、Map 这四大家族,几乎天天都要打交道。很多初学者甚至不少老手,常常在选型时犯迷糊:到底什么时候用数组?什么时候用 ArrayList?HashSet 和 TreeSet 又有什么区别?别急,今天咱们就把它们摆到台面上,一张表说清楚。
ja va中array list set map对比
| 特性 / 操作 | Array(数组) | List(列表) | Set(集合) | Map(映射) |
|---|---|---|---|---|
| 是否有顺序
(Order) |
✅ 有(索引顺序) | ✅ 有(插入顺序) | ❌ HashSet:无序 ✅ LinkedHashSet:插入顺序 ✅ TreeSet:自然/自定义排序 |
❌ HashMap:无序 ✅ LinkedHashMap:插入顺序 ✅ TreeMap:按 key 排序 |
| 是否允许重复 | ✅ 允许 | ✅ 允许 | ❌ 不允许(元素唯一) | ❌ Key 唯一 ✅ Value 可重复 |
| 增 | ❌ 长度固定,仅能赋值 | add(E), add(i, E) | add(E) | put(K, V) |
| 删 | ❌ 无法真正删除 | remove(Object), remove(int) | remove(Object) | remove(Object key) |
| 改 | arr[i] = val | set(int, E) | ❌ 需先删后加 | put(K, V) / replace(K, V) |
| 查 | arr[i] | get(i), indexOf(), contains() | contains() | get(K), containsKey(), containsValue() |
| 常用子类 / 实现类 | - 原生语法: String[] arr = new String[5]; - 工具类: Arrays.asList(...)(返回固定大小 List) |
• ArrayList(最常用) • LinkedList(频繁头尾操作) • Vector(线程安全,已少用) • CopyOnWriteArrayList(并发安全) |
• HashSet(最常用,基于哈希) • LinkedHashSet(保持插入顺序) • TreeSet(自动排序,基于红黑树) |
• HashMap(最常用) • LinkedHashMap(保持插入顺序) • TreeMap(key 自动排序) • ConcurrentHashMap(高并发场景) |
注意
List 里的 remove 方法是个经典陷阱。因为它有 remove(int) 和 remove(Object) 两个重载,当你传入一个数字字面量时,编译器会优先匹配索引版本,结果就跟你预想的不一样了。看看下面这个例子:
Listnums = new ArrayList<>(); nums.add(1); nums.add(2); nums.add(3); // ❌ 错误:想删除值为 1 的元素,但实际删除了索引为 1 的元素! nums.remove(1); // 调用了 remove(int index),删除了 "2" // ✅ 正确:要删除值为 1 的元素,需显式传入 Integer 对象 nums.remove((Integer) 1); // 或 nums.remove(Integer.valueOf(1));
总之,搞清楚每种结构的特性,干活才能不踩坑。数组适合固定大小、频繁随机访问的场景;List 是动态数组的首选;Set 帮你自动去重;Map 则专治键值对映射。按需取用,事半功倍。
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。
Adobe Bridge 是 Adobe 推出的创意资产管理工具,可集中预览、分类和查找照片、视频、PDF及多种设计文件,并支持元数据、关键词、评级、批量重命名和格式导出。它可与 Photoshop、Illustrator 等应用衔接,














