以前并没有在意Hashtable的遍历问题 今天遇到了个问题值得注意!
先说说遍历方法
HashMap遍历的两种方式:
第一种:
Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val = entry.getValue(); }效率高,推荐使用此种方式!
第二种:
Map map = new HashMap(); Iterator iter = map.keySet().iterator(); while (iter.hasNext()) { Object key = iter.next(); Object val = map.get(key); }效率低比第一种要低,不推荐使用!
而在J2ME中是行不通的iterator就悲剧了
没怎么考虑直接 for Hashtable 的 size 然后遍历!
问题出来了 debug 的时候 明明是7 然后size就是3,查看元素
里面null 的size不计数
所以只能改策略了!
Enumeration e = table.elements(); while (e.hasMoreElements()){ ORPlayer _p = (ORPlayer)e.nextElement(); }搞定了!