LinkedHashMap和HashMap有什么区别?
时间: 2024-03-01 13:47:04 浏览: 84
今天会是有Offer的一天么:面试时不要再问我LinkedHashMap了
LinkedHashMap和HashMap的区别主要在于存储元素的顺序不同。
HashMap是一种无序的Map实现类,它不保证元素的顺序。当我们遍历HashMap时,元素的顺序是不确定的。
而LinkedHashMap是一种有序的Map实现类,它继承自HashMap,并且在HashMap的基础上使用了双向链表来维护元素的插入顺序。当我们遍历LinkedHashMap时,元素的顺序是按照插入顺序来的。
因此,如果我们需要保持元素的插入顺序,可以使用LinkedHashMap;如果不需要保持元素的顺序,可以使用HashMap。
范例:LinkedHashMap和HashMap的区别
```java
import java.util.HashMap;
import java.util.LinkedHashMap;
public class LinkedHashMapExample {
public static void main(String[] args) {
// 创建一个HashMap
HashMap<Integer, String> hashMap = new HashMap<>();
hashMap.put(1, "Apple");
hashMap.put(2, "Banana");
hashMap.put(3, "Orange");
// 创建一个LinkedHashMap
LinkedHashMap<Integer, String> linkedHashMap = new LinkedHashMap<>();
linkedHashMap.put(1, "Apple");
linkedHashMap.put(2, "Banana");
linkedHashMap.put(3, "Orange");
// 遍历HashMap
System.out.println("HashMap:");
for (Integer key : hashMap.keySet()) {
System.out.println(key + ": " + hashMap.get(key));
}
// 遍历LinkedHashMap
System.out.println("LinkedHashMap:");
for (Integer key : linkedHashMap.keySet()) {
System.out.println(key + ": " + linkedHashMap.get(key));
}
}
}
```
输出结果:
```
HashMap:
1: Apple
2: Banana
3: Orange
LinkedHashMap:
1: Apple
2: Banana
3: Orange
```
阅读全文