簡體   English   中英

使用 GregorianCalendar 作為 HashMap 中的鍵...我如何訪問這些鍵?

[英]Using GregorianCalendar as keys in a HashMap... how do I access the keys?

我有這個 HashMap,我想使用 for 循環一個一個地訪問每個鍵。 這就是我所做的:

    HashMap<GregorianCalendar,ArrayList<String>> hash; //this is the HashMap I want to access
    Set<GregorianCalendar> setCalendars = hash.keySet(); //get a Set containing all the keys
    Object[] arrayCalendars = setCalendars.toArray(); //get an "Array" containing all the keys
    GregorianCalendar calendar;

    for(j = 0; j <= hash.size(); j++){
        calendar = arrayCalendars[j]; //this is the line I'm having trouble with
    }

arrayCalendars[j] 返回一個 Object[] 類型的元素,但我希望它返回一個 GregorianCalendar 類型,以便我可以訪問月和日變量。 有沒有辦法做到這一點?

您需要使用toArray通用版本,它將返回GregorianCalendar[]數組:

GregorianCalendar[] arrayCalendars = setCalendars.toArray(new GregorianCalendar[setCalendars.size()]);

順便說一句,您真的應該放棄在地圖中使用GregorianCalendar作為鍵的想法,因為它是一個可變類。 您不應該使用可變類型作為映射中的鍵。

你擁有它(但后來你失去了它),你只需要這個——

HashMap<GregorianCalendar,ArrayList<String>> hash; //this is the HashMap I want to access

for (GregorianCalendar calendar : hash.keySet()) {
  // calendar = arrayCalendars[j]; //this is the line I'm having trouble with
      ArrayList<String> al = hash.get(calendar);
}

您應該嘗試使用演員表。

calendar = (GregorianCalendar) arrayCalendars[j];

暫無
暫無

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

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