1、什么是LinkedHashMap?
LinkedHashMap是HashMap的一个子类,它保留插入的顺序,即输出的顺序和输入时的顺序相同,允许键值对为空,key重复会覆盖,value允许重复,并且有序,安全。
LinkedHashMap可以认为是HashMap+LinkedList,即它既实用HashMap操作数据结构,又使用LinkedList维护插入元素的先后顺序。
LinkedHashMap的基本实现思想就是---多态。
2、String a = new String("abcd");
String b = new String("abcd");
(1)a==b?
a!=b,因为如果'=='左右两边是基本数据类型,'=='比较的是内容是否相等,如果'=='两边是引用类型(class),则'=='比较的左右两边是否是对同一对象的引用。而equals()比较的是内容是否相等。
(2)若是两者都作为key则会覆盖一个key
public class LinkedHashMapTest {
public static void likedHashMap() {
System.out.println("------有序(根据输入的顺序输出)------");
String a = new String("ab");
String b = new String("ab");
Map map = new LinkedHashMap();
map.put(a, "Level F");
map.put(b, "Level 1");
map.put("8", "Level 2");
map.put("4", "Level 3");
map.put("4", "Level 4");
map.put("Q", "Level Q");
map.put("E", "Level E");
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry e = (Map.Entry) it.next();
System.out.println("Key: " + e.getKey() + "; Value: "
+ e.getValue());
}
}
public static void main(String[] args) {
LinkedHashMapTest.likedHashMap();
}
}
------有序(根据输入的顺序输出)------
Key: ab; Value: Level 1
Key: 8; Value: Level 2
Key: 4; Value: Level 4
Key: Q; Value: Level Q
Key: E; Value: Level E