【背景】
想要用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即可。
转载请注明:在路上 » 【已解决】Android中用Java的HashMap的遍历