Java 8及以上纯Java自带可迭代有序数据结构有哪些?
Java 8+ 原生有序且支持直接遍历的数据结构(除TreeMap/TreeSet外)
以下是符合纯Java环境要求的原生数据结构,按有序特性分为两类:
一、自动维护操作顺序的集合
这类集合会自动记录元素的插入或访问顺序,遍历过程直接遵循该顺序:
- LinkedHashMap:默认按插入顺序存储键值对,遍历entrySet、keySet或values时会严格遵循插入顺序;通过构造参数
LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)设置accessOrder=true后,会切换为最近访问顺序排序,可用于实现LRU缓存。 - LinkedHashSet:基于LinkedHashMap实现,默认按插入顺序存储唯一元素,兼具HashSet的去重能力和有序性,遍历顺序与元素插入顺序完全一致。
- ArrayDeque:双端队列实现,按插入顺序存储元素,支持从两端快速添加/删除操作,遍历顺序与元素插入顺序一致,属于有序线性结构。
二、手动维护有序性的集合
这类集合本身不自动排序,但如果插入时按有序逻辑添加,或排序后不再修改结构/元素值,就能保持有序并支持直接遍历:
- ArrayList:基于数组的列表,遍历顺序为元素插入顺序。通过
Collections.sort()排序后,若后续不插入无序元素或修改元素值,可维持排序后的有序状态。 - LinkedList:双向链表实现,遍历顺序同插入顺序,同样可通过
Collections.sort()手动排序后维持有序性。
关键区分
- 上述自动维护操作顺序的集合,与TreeMap/TreeSet的自然排序/自定义比较器排序不同,它们的有序性基于元素的操作时序,而非元素本身的大小关系。
- 手动维护有序的集合,后续修改(如插入新元素、修改元素值)可能破坏已有有序性,需重新排序。
内容的提问来源于stack exchange,提问作者user743883
相关产品推荐
相关产品推荐

