我有一个2D点列表(自定义Node类)。 我想选择一个Node并说“Ehy,我列表中最近的10个节点就是那10个”
现在,问题是什么: 我想做一些像:
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);
}
我想知道是否已经有一个具有那些伪方法的集合(THE_FURTHER_POINT和ADD) 这两种方法应该是这样的:
THE_FURTHER_POINT: 返回进一步的观点。集合应该是固定长度的,因此该方法应始终返回最后一个元素 (如果我在topten中有8个元素,我应该收到索引为7的节点,如果我有10个元素,我应该收到索引为9的节点)
ADD: 每次添加元素时,如果集合已满,则最新元素将被删除。集合应始终是纵坐标,并且此操作应尽可能快 (如果我在topten中有8个元素,我将在添加后最终添加9个元素。 如果我有10个元素,那么在添加后我将得到10个元素
非常感谢你!
答案 0 :(得分:0)
最后,我真正想要的是一个集合
所以...阅读后Java PriorityQueue with fixed size 我想我找到了答复。这可以被认为是一个重复的问题。