![](/img/trans.png)
[英]How to access a HashMap<Integer, ArrayList<Integer>> in JSTL using dynamic keys?
[英]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.