在没有java.lang.Map API的情况下遍历Hashtable条目的最佳方法是什么?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在没有java.lang.Map API的情况下遍历Hashtable条目的最佳方法是什么?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1214字,纯文字阅读大概需要2分钟。
内容图文
![在没有java.lang.Map API的情况下遍历Hashtable条目的最佳方法是什么?](/upload/InfoBanner/zyjiaocheng/653/dd2675ecb9cf4c76984649795c43b37f.jpg)
我正在研究没有Collections API的BlackBerry j2me Java实现.因此,没有entrySet()方法或Map.Entry类.迭代Hashtable映射的唯一可用方法是elements()和keys()方法.
我可以期望elements()和keys()以相同的顺序返回相同数量的映射吗?如果是这样,我可以执行以下操作:
Enumeration keys = table.keys();
Enumeration elements = table.elements();
String key, value;
while(keys.hasMoreElements()) {
key = keys.nextElement();
value = elements.nextElement();
}
我认为情况确实如此,但是文档并不确定.如果我不能做这个假设,那么我将只需要遍历这些键:
Enumeration keys = table.keys();
String key, value;
while(keys.hasMoreElements()) {
key = keys.nextElement();
// Less efficient b/c I have to do a lookup every time.
value = table.get(key);
}
编辑:您可以假设只有一个线程有权访问该表.
解决方法:
他们保证返回相同数量的物品.在Sun的实现中,键和值以相同的顺序返回. (实际上,在幕后,同一个类用于遍历键,值或Map.Entry对象.)确实,很难想象除了遍历存储桶以外,还可以通过其他方式获取值.
但是,语言规范并没有说它们必须遵循相同的顺序,因此,如果您做出这样的假设,将会阻碍可移植性,并可能在以后引入难以发现的错误.我认为是算法专家Donald Knuth说的:“我们应该忘记效率低下的问题,大约有97%的时间是这样:过早的优化是万恶之源.”除非代码的特定部分是一个巨大的瓶颈,否则我建议您对每个键进行查找.
内容总结
以上是互联网集市为您收集整理的在没有java.lang.Map API的情况下遍历Hashtable条目的最佳方法是什么?全部内容,希望文章能够帮你解决在没有java.lang.Map API的情况下遍历Hashtable条目的最佳方法是什么?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。