【发布时间】:2014-03-13 14:05:52
【问题描述】:
我有一个 SwingObjects 的 ArrayList,它们被绘制到 JPanel 上。我正在尝试比较哪些对象彼此最接近,但我真的不知道如何解决这个问题。我做了一个辅助方法,将当前的 SwingObject 与另一个进行比较。
public double distance(SwingObject obj2)
{
int x1 = this.getX();
int y1 = this.getY();
int x2 = obj2.getX();
int y2 = obj2.getY();
double distance = Math.sqrt(((x2-x1)*(x2-x1)) + ((y2-y1)*(y2-y1)));
return distance;
}
我有一个比较器方法,可以将当前的 SwingObject 与其他对象进行比较。
public void closest(SwingObject c, ArrayList<SwingObject> swingList)
{
}
有没有办法将数组列表中的所有内容相互比较并确定相对于当前 SwingObject c 的短裤?
【问题讨论】:
-
你不能循环遍历 List 以获取每个对象,然后在该循环内,再次遍历 List 以将每个对象与其他对象进行比较吗?
-
为了尽快获得更好的帮助,请发布MCTaRE(经过测试和可读的最小完整示例)。
-
嗯,我没有将所有内容相互比较,而我只是将一个与其他所有内容进行比较。就像如果我有 {a, b, c, d} 我会拿 a 并将其与 b, c, d 进行比较,看看哪一个是 a 的壁橱,并使其成为最接近的 SwingObject 之一。
-
提示:添加@KevinWorkman(或重要的
@)以通知某人有新评论。顺便说一句 - 什么是SwingObject?哦,没关系,以 MCTaRE 的形式回答。 -
@helloMundo 我不确定您所描述的与我使用基本嵌套 for 循环的建议有何不同。