【背景】
想要用Iterator去遍历android中的HasMap。
【折腾过程】
1.参考:
去试试,
2.另外,也可以参考之前:
所看到的那个Enumerated,去试试效果。
结果发现Enumerated是个自己定义的类,所以算了。
还是用之前的Iterator吧。
3.后来用相关代码:protected static Map globalDefineMap = new Hashtable(); // holds the globalDefineMap
String defineId = "";
defineId = defineMacro.getText();
globalDefineMap.put(defineId, args );
/* process for special case:
* #define A B
* #define B C
*/
//for above args is list: [definedContent]
//so here generate a fake list: [defineId]
//for later to compare exist or not
List curDefineIdList = new ArrayList();
curDefineIdList.add(defineId);
//check whether is: B is in previous found "#define A B"
if(globalDefineMap.containsValue(curDefineIdList)){
//Collection defineValueCollection = globalDefineMap.values();
//Iterator defineValueIter = defineValueCollection.iterator();
Iterator defineEntryIter = globalDefineMap.entrySet().iterator();
while (defineEntryIter.hasNext()) {
Map.Entry eachDefineEntry = (Map.Entry) defineEntryIter.next();
Object defineKey = eachDefineEntry.getKey();
Object defineVal = eachDefineEntry.getValue();
if(defineVal.equals(curDefineIdList)){
//replace old with new value
globalDefineMap.put(defineKey, args);
break;
}
}
}
即可。
【总结】
遍历HashMap的话,用Iterator即可。