Java - Collection 保持最好的结果

Java - Collection to keep the best results

我有一个二维点列表(自定义节点 class)。 我想选择一个节点并说 "Ehy, the 10 closest node in my list are those ten"

现在,问题是什么: 我想做这样的事情:

ArrayList<Node> nodes; //list of nodes
            ArrayList<Node> topten; //list of nearest nodes
            Node currentNode; //the current point
            for (Node x : nodes){
                if (x.distance(currentNode) < (topten.THE_FURTHER_POINT()).distance(currentNode))
                    topten.ADD(x);

            }

我想知道是否已经有一个 Collection 有那些 pseudo-methods(THE_FURTHER_POINT 和 ADD) 这两种方法应该像这样工作:

THE_FURTHER_POINT: return再进一步一点。 collection 应该是 fixed-length,所以这个方法应该总是 return 最后一个元素 (如果我在 topten 中有 8 个元素,我应该接收索引为 7 的节点,如果我有 10 个元素,我应该接收索引为 9 的节点)

添加: 每次添加元素时,如果 collection 已满,则删除最新的元素。 collection 应始终为纵坐标,此操作应尽可能快 (如果我在 topten 中有 8 个元素,我将在添加后得到 9 个元素。 如果我有 10 个元素,我将在添加后得到 10 个元素)

非常感谢!

结果我真正找的是一个合集

  • 总是排序
  • 固定长度

所以...看完后Java PriorityQueue with fixed size 我想我找到了我的回复。这可以被认为是一个重复的问题。