一、说明:java.util.LinkedHashMap<K,V> extends HashMap<K,V>
1、LinkedHashMap是继承自HashMap
2、LinkedHashMap是由Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。
二、 底层原理:
哈希表+链表(记录元素的顺序)
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
/*
* java.util.LinkedHashMap<K,V> extends HashMap<K,V>
Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。
* 底层原理:
* 哈希表+链表(记录元素的顺序)
* */
public class LinkedHashMap05 {
public static void main(String[] args) {
HashMap<String,String> hm = new HashMap<>();
hm.put("江西","南昌");
hm.put("广东","广州");
hm.put("湖南","长沙");
hm.put("江苏","南京");
hm.put("江西","抚州");
System.out.println(hm); //无序+不允许重复
LinkedHashMap<String,String> lhm = new LinkedHashMap<>();
lhm.put("江西","南昌");
lhm.put("广东","广州");
lhm.put("湖南","长沙");
lhm.put("江苏","南京");
lhm.put("江西","抚州");
System.out.println(lhm);//有序+不允许重复
}
}
输出:
{广东=广州, 湖南=长沙, 江西=抚州, 江苏=南京}
{江西=抚州, 广东=广州, 湖南=长沙, 江苏=南京}