簡體   English   中英

Linkedhaspmap 和linkedhashmap 的區別<Integer,String>

[英]Difference between linkedhaspmap and linkedhashmap<Integer,String>

我創建了兩個地圖,如下所示。 誰能解釋一下為什么程序的輸出是這樣的,為什么deletecontent方法允許我通過mymap2? 創建 mymap 和 mymap2 的區別

   public class Candidate {

            public static void main(String[] args) {
                // TODO Auto-generated method stub
                LinkedHashMap<Integer, String> mymap= new LinkedHashMap<Integer, String>();
                mymap.put(1, "INDIA");
                mymap.put(2, "USA");
                mymap.put(3, "RUSSIA");

                LinkedHashMap mymap2= new LinkedHashMap();
                mymap2.put("1", "INDIA");
                mymap2.put("2", "USA");
                mymap2.put("3", "RUSSIA");

                deleteContent(mymap);
                deleteContent(mymap2);
                print(mymap);
                System.out.println("------------------");
                print(mymap2);

            }

            private static void print(LinkedHashMap<Integer, String> mymap) {
                for (Entry<Integer, String> e: mymap.entrySet()) {
                    System.out.println(e.getKey()+"-----"+ e.getValue());
                }

            }

            private static void deleteContent(LinkedHashMap<Integer, String> mymap) {
                // TODO Auto-generated method stub
                mymap.remove("3");
            }


        }

    output of the below program is 
    1-----INDIA
    2-----USA
    ------------------
    1-----INDIA
    2-----USA
    3-----RUSSIA

您在問題中輸入的輸出不是此代碼實際產生的輸出,即:

1-----INDIA
2-----USA
3-----RUSSIA
------------------
1-----INDIA
2-----USA

第二個 Map 具有 String 鍵和 String 值。 因此,僅適用於第二個 Map mymap.remove("3"); 從地圖中刪除一個條目。

mymap.remove("3"); 通過編譯,即使mymapLinkedHashMap<Integer, String> ,因為remove接受Object類型的參數。

由於向后兼容, deleteContent允許您將原始LinkedHashMap類型傳遞給它。 您可能有返回原始類型的舊(Java 5 之前)方法,因此您可以將它們傳遞給需要參數化類型的較新方法。

好吧, 3"3" (一個是Integer ,另一個是String )——這就是輸出不同的原因——第一個映射沒有要刪除的鍵。

代碼實際編譯對我來說也是一個驚喜。 我想這是不再使用原始類型的另一個原因。

另外,對我來說,輸出是

1-----INDIA
2-----USA
3-----RUSSIA
------------------
1-----INDIA
2-----USA

反之亦然。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM