有序VS无序(Java基础语法)

前言:Set相当于集合(唯一),Map相当于映射(键对值)

一、 无序 (Unordered)
  • 核心定义: 元素的排列顺序与添加顺序 和元素大小都无关,不可预测,不可依赖,就好比薛定的的猫一样,你把1,2,3放进去之后,它可能会把顺序打乱,也可能不会,你不输出出来,你也不知道他是怎么排序的。

  • 代表: HashSet, HashMap

  • 关键优势: 性能最高效。


Plaintext 模拟:
输入顺序: add(20), add(10), add(30)

复制代码
// HashSet 最终状态 (一种可能的混乱结果):
[10, 30, 20]

二、 有序 (Ordered)

分为以下两种完全不同的"有序":

  • 核心定义: 严格保持元素被添加时的先后顺序,忠实记录操作历史。

  • 代表: LinkedHashSet, LinkedHashMap, 所有 List (如 ArrayList)

  • 关键优势: 需要去重但又不能打乱原始序列。


Plaintext 模拟:
输入顺序: add(20), add(10), add(30)

复制代码
// LinkedHashSet 最终状态 (严格等于输入顺序):
[20, 10, 30]

  • 核心定义: 集合自动 根据元素自身的大小 或指定规则进行排序。

  • 代表: TreeSet, TreeMap

  • 关键优势: 集合始终保持有序状态,便于查找和范围操作。


Plaintext 模拟:
输入顺序: add(20), add(10), add(30)

复制代码
// TreeSet 最终状态 (按数字从小到大自动排序):
[10, 20, 30]
相关推荐
文丑颜不良啊2 小时前
LeetCode2161~2180题目解析
java·leetcode
文丑颜不良啊3 小时前
LeetCode2141~2160题目解析
java·leetcode
LabVIEW开发3 小时前
LabVIEW 连接板:28 个端子怎么排,优先级怎么定
java·算法·labview
天天被压力4 小时前
【A股分钟级高频数据完全手册 #07】北交所历史分钟K线接口:京市Pro版分时批量
java·人工智能·python
天天被压力4 小时前
【A股分钟级高频数据完全手册 #08】股票日、分时数据接口对比:普通分时与Pro版差异实测
java·人工智能·python
特立独行的猫A4 小时前
AI 时代,我为什么推荐用 cj-tauri 开发桌面应用
java·后端·python
金銀銅鐵4 小时前
从一个类名到一张类图:用反射自动生成 PlantUML
java·后端·uml
nice_lcj5205 小时前
Java 并发容器入门:ConcurrentHashMap、CopyOnWriteArrayList、阻塞队列
java·面试·并发编程·阻塞队列·concurrenthashmap·copyonwritearraylist
微小的鱼5 小时前
Linux的渲染与显示系统链路
android·java·linux
若亦_6 小时前
Java中关于this的三种用法
java·开发语言·intellij-idea