我有这个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类型,这样我就可以访问月和日变量了。有没有办法可以做到这一点?
答案 0 :(得分:0)
您需要使用toArray
的通用版本,它将返回GregorianCalendar[]
数组:
GregorianCalendar[] arrayCalendars = setCalendars.toArray(new GregorianCalendar[setCalendars.size()]);
顺便说一句,你应该放弃在地图中使用GregorianCalendar
作为关键字的想法,因为它是一个可变类。你不应该在地图中使用可变类型作为键。
答案 1 :(得分:0)
你有它(但后来你失去了它),你只需要这个 -
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);
}
答案 2 :(得分:-1)
你应该尝试使用演员。
calendar = (GregorianCalendar) arrayCalendars[j];