簡體   English   中英

為什么我的哈希映射代碼打印為空?

[英]Why does my hash map code print null?

我有以下代碼,我想打印xyz 當我這樣做時,我分別期待(1969, 21, 7)(1969, 4, 12)(1969, 21, 7) 相反,我得到null null null

我的問題是,為什么下面的代碼為x,y和z而不是實際日期打印為空?

import java.util.HashMap;
import java.util.GregorianCalendar;

public class GregorianCalenderTest {

    public static void main(String[] args) {

        HashMap st = new HashMap();

        GregorianCalendar x = new GregorianCalendar(1969, 21, 7);
        GregorianCalendar y = new GregorianCalendar(1969, 4, 12);
        GregorianCalendar z = new GregorianCalendar(1969, 21, 7);

        st.put(x,  "human in space");
        x.set(1969, 4, 12);

        System.out.println(st.get(x));
        System.out.println(st.get(y));
        System.out.println(st.get(z));


    }

}

這里: x.set(1969, 4, 12); 放入Map 更改已定義的對象。

切勿更改用於Map鍵的對象的內部值。 它會驅動hashCode()值, equals()方法,之后你的地圖就會被扔到垃圾箱里。

暫無
暫無

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

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