首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中实现hashTable作为链接列表的索引器?

如何在java中实现hashTable作为链接列表的索引器?
EN

Stack Overflow用户
提问于 2013-12-21 21:32:31
回答 1查看 706关注 0票数 0

我有一组具有唯一ids的元素。

我希望以某种方式对它们进行排序,因此,给定一个元素id,我将有效地返回它的前一个和下一个元素。

如果我用任何有指针的语言实现它,我就会用它创建一个hashTable,并且双链接列表中的每个节点将分别指向前一个和下一个元素。

您将如何用java实现它?

顺便说一下,我应该使用hashMap/hashtable还是hashSet?

EN

回答 1

Stack Overflow用户

发布于 2013-12-21 22:08:31

如果您想在哈希表上实际使用双链接列表视图,最好的方法是自己实现它。每个节点都知道其内容的值,存储桶中的下一个元素(单链接桶很容易),以及双链接列表中的前一个/下一个元素。然后,您可以自由地实现ListIterator提供程序和怪异的Deque实现。

这有点像诚实地重新发明轮子,但是没有标准的哈希实现也提供了对迭代器之外的链接列表的真正有用的访问。

参见我写的这门课;它是一个Set而不是一个Map,其中包含一些额外的花哨东西(为了获得一个随机元素而不是最近添加的元素),但是它应该给您一些想法。我还建议阅读java.util.HashMap的源代码,并从它们进行散列的方式中获取提示等等。

记住:如果您想要维护一个实际的排序集,哈希表不是您应该使用的。如果您需要始终对其进行排序,则获取一个排序树集;这些树集也是可遍历的。

编辑:包括到这个班的链接,因为我很糟糕,我忘记了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20723783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档