Java有序Map详解(2种最常用有序Map) – mikechen

📝 ✏️ 📌
Java有序Map详解(2种最常用有序Map) – mikechen

在Java有序Map在Java开发经常使用到,下面我就重点来详解2种常见的Java有序Map@mikechen

1.LinkedHashMap

LinkedHashMap是HashMap的一个子类,它通过双向链表维护了一个插入顺序或者访问顺序的列表。

HashMap和双向链表的密切配合和分工合作造就了LinkedHashMap,如下图所示:

LinkedHashMap是通过双向链表和散列表这两种数据结构组合实现的,这样在查询的时候就可以通过散列表来操作,遍历的时候通过双向链表来操作。

如果需要维护插入顺序,可以使用LinkedHashMap。

示例如下:

Map map = new LinkedHashMap<>();

map.put("apple", 1);

map.put("banana", 2);

map.put("orange", 3);

for (Map.Entry entry : map.entrySet()) {

String key = entry.getKey();

Integer value = entry.getValue();

System.out.println(key + " -> " + value);

}

2.TreeMap

TreeMap是基于红黑树实现的有序Map,它会按照键的自然顺序或者自定义的比较器顺序进行排序。

TreeMap底层通过红黑树(Red-Black tree)实现,是一种平衡二叉树,TreeMap数据结构如下图所示:

如果需要使用自定义的排序方式,可以使用TreeMap。

如下所示:

Map map = new TreeMap<>();

map.put("apple", 1);

map.put("banana", 2);

map.put("orange", 3);

for (Map.Entry entry : map.entrySet()) {

String key = entry.getKey();

Integer value = entry.getValue();

System.out.println(key + " -> " + value);

}

输出:

apple -> 1

banana -> 2

orange -> 3

如果使用TreeMap,键的类型必须实现Comparable接口,或者传入一个Comparator比较器。

以上就是Java有序Map的详解,更多Java集合,请查看:Java集合(万字图文全面详解)

mikechen睿哥

10年+一线大厂架构实战经验,操盘多个亿级大厂核心项目,就职于阿里、淘宝等一线大厂。

🔗 相关推荐

✨ 💡 🎯
LOL/「Section部分」確認缺席世界賽主播台 喊話2025再相見
2233网络语起源揭秘,LOL中的“2333”是什么意思?
什么编曲软件适合新手 有哪些好的编曲课程推荐