我是Java的初学者.请建议可以/应该使用哪些集合来维护Java中的排序列表.我曾尝试Map和Set,但他们不是我所期待的.
我正在编写dijkstra算法的代码,对于我们应该找到与当前正在使用的节点的距离最小的节点的部分,我在那里使用一个数组并完全遍历它以找出节点.
这个部分可以用二进制堆代替,我们可以在O(1)时间内找出节点,但是我们还在更进一步的迭代中更新节点的距离,我将如何合并该堆?
在数组的情况下,我所要做的就是去第(ith -1)索引并更新那个节点的值,但是在二进制堆中不能做同样的事情,我将不得不做完全搜索来计算退出节点的位置,然后更新它.
这个问题的解决方法是什么?
我需要一个像C++ multimap一样的集合,但我还需要能够通过一系列键来获取元素.