如何将数组操作"复制"到另一个数组?

Luk*_*son 6 java arrays

这可能是一个简单的问题,但我有两个大约1000个元素的数组,它们被称为posXArrayposYArray.我想用posYArray数字排序(最低的数字)但我希望元素posXArray具有相同的操作应用于它们......

例如,如果element [56] posYArray是最小的,我希望元素[56] posXArray也被移动到[0].

如何以简单/好的方式在Java中实现它?

非常感谢你的帮助!

Sma*_*ker 8

由于数组似乎包含X和Y坐标,或许更好的选择是创建一个包含两个值的坐标类,实现Comparable并只使用一个数组来使用内置算法进行排序?


Jea*_*art 2

创建一个类,例如:

public class XYPos implements Comparable<XYPos> {
    int x;
    int y;

    @Override
    public int compareTo(XYPos o) {
        int res = this.y - o.y;
        if(res == 0) {
            res = this.x - o.x;
        }
        return res;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后:

  1. 将 2 个数组转换为 1 个数组XYPos
  2. 把它分类
  3. 使用排序数组中的值更新 2 个原始数组