七、在LinkedHashMap中,String a = new String("abcd");String b = new String("abcd");都作爲key,會如何?
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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.