Java:具有快速查找功能的堆栈

Java:具有快速查找功能的堆栈,java,performance,data-structures,stack,graph-theory,Java,Performance,Data Structures,Stack,Graph Theory,我正在搜索的数据结构是一个在contains()上具有恒定性能的堆栈。目前我正在使用我自己的类来实现这一点,它并行地管理一个HashMap,该HashMap存储每个条目的频率。调用contains()时,如果映射中的元素频率大于0,它将返回 有没有一个预构建的数据结构,最好是在番石榴中,因为我已经在使用它了? 如果没有,还有比我做的更好的解决方案吗 我不想在使用它的类中并行管理集合和堆栈,因为在我看来,这不是一个干净的设计,因为这样会使代码中有更多的对象,并显示出较低的抽象级别 如果有帮助的话:

我正在搜索的数据结构是一个在contains()上具有恒定性能的堆栈。目前我正在使用我自己的类来实现这一点,它并行地管理一个HashMap,该HashMap存储每个条目的频率。调用contains()时,如果映射中的元素频率大于0,它将返回

有没有一个预构建的数据结构,最好是在番石榴中,因为我已经在使用它了?
如果没有,还有比我做的更好的解决方案吗


我不想在使用它的类中并行管理集合和堆栈,因为在我看来,这不是一个干净的设计,因为这样会使代码中有更多的对象,并显示出较低的抽象级别


如果有帮助的话:这是一个图形算法,我想在这个堆栈中管理已探索的顶点,这样我就可以回溯并将它们标记为未探索的,以相反的顺序。

“我不想在使用它的类中并行管理集合和堆栈”。您是说您还没有将功能抽象到自己的
HashStack
(或其他)类中?这似乎是一个微不足道的问题,我怀疑是否有一个现有的实现值得添加另一个依赖项。很抱歉,不精确,我确实做到了,而且效果很好。不,没有这样的内置数据结构。编写自定义类,使API只包含您需要的函数。这不应该暴露较低层次的抽象。所以你已经把它清晰地抽象了。这设计不错。这是使用最小的努力,因此您可以专注于系统的实际有价值的部分,即图形算法。你唯一需要做的就是使用
HashSet
而不是
HashMap
。啊,是的,没错。那么,请保留
HashMap
。如果你想知道设计中是否有需要修复的地方,你可以把你的代码放在上面,但我不会集中太多。你的主要任务是图形算法。“我不想在使用它的类中并行管理一个集合和一个堆栈”。您是说您还没有将功能抽象到自己的
HashStack
(或其他)类中?这似乎是一个微不足道的问题,我怀疑是否有一个现有的实现值得添加另一个依赖项。很抱歉,不精确,我确实做到了,而且效果很好。不,没有这样的内置数据结构。编写自定义类,使API只包含您需要的函数。这不应该暴露较低层次的抽象。所以你已经把它清晰地抽象了。这设计不错。这是使用最小的努力,因此您可以专注于系统的实际有价值的部分,即图形算法。你唯一需要做的就是使用
HashSet
而不是
HashMap
。啊,是的,没错。那么,请保留
HashMap
。如果你想知道设计中是否有需要修复的地方,你可以把你的代码放在上面,但我不会集中太多。你的主要任务是图形算法。