Java 比较ArrayList中swing对象的距离?

Java 比较ArrayList中swing对象的距离?,java,swing,arraylist,Java,Swing,Arraylist,我有一个画在JPanel上的旋转物体的数组列表。我试图比较哪些物体彼此最接近,但我真的不知道如何接近。我创建了一个helper方法,它将当前SwingObject与另一个SwingObject进行比较 public double distance(SwingObject obj2) { int x1 = this.getX(); int y1 = this.getY(); int x2 = obj2.getX(); int y2 = obj2.getY();

我有一个画在JPanel上的旋转物体的数组列表。我试图比较哪些物体彼此最接近,但我真的不知道如何接近。我创建了一个helper方法,它将当前SwingObject与另一个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)
{
}
public(SwingObject c,ArrayList swingList)
{
}

是否有一种方法可以将数组列表中的所有内容相互比较,并确定相对于当前SwingObject c的短项?

在最近的内部,循环遍历swingList中的所有SwingObject,并将c到swingList元素的距离存储在新列表中。然后,对本地列表进行排序,并从最近的列表返回它


距离函数也可能有问题。Swing组件的X和Y位置相对于其父容器。因此,您希望所有的X和Y都是相对的,所以请使用。

难道您不能在列表中循环以获得每个对象,然后在该循环中,再次循环列表以将每个对象与其他对象进行比较吗?为了更快地获得更好的帮助,请发布一个(最小的完整测试和可读示例)。嗯,我不是把每件事都互相比较,我只是把一件事和其他的事比较。就像我有{a,b,c,d}一样,我会拿a和b,c,d进行比较,看看哪一个是a的壁橱,并制作一个最接近的SwingObject。提示:添加@KevinWorkman(或者任何人,
@
很重要)来通知一个人新的评论。顺便说一句-什么是
SwingObject
?哦,没关系,以MCTaRE的形式回答。@helloMundo我不确定你所描述的与我建议的使用基本嵌套for循环有什么不同。