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

👁️ 1479 ❤️ 924
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集合(万字图文全面详解)

← 语重心长的意思 白内障晶体价格一览表2026价目表:国产进口全解析,从300元基础款到3万元高端款一网打尽 →