七、在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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章