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
我想我找到了我的回复。这可以被认为是一个重复的问题。
我有一个二维点列表(自定义节点 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 我想我找到了我的回复。这可以被认为是一个重复的问题。