Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 实现选择排序:输入数组随返回数组一起改变_Java_Arrays_Selection Sort - Fatal编程技术网

Java 实现选择排序:输入数组随返回数组一起改变

Java 实现选择排序:输入数组随返回数组一起改变,java,arrays,selection-sort,Java,Arrays,Selection Sort,我有一个处理笛卡尔点的程序。在程序中的某个位置,我将x和y值加载到一个点数组中。没什么大不了的。但是,我想按x值对这个数组进行排序,并将其设置为一个新变量,同时保持原始数组的原样。 原始数组为“点”,新数组定义为: points1 = sortBy(points, "x"); sortBy方法在前面定义为: private static Point[] sortBy( Point[] pointsXY, String xOrY) { int min; Point[] inputPoin

我有一个处理笛卡尔点的程序。在程序中的某个位置,我将x和y值加载到一个点数组中。没什么大不了的。但是,我想按x值对这个数组进行排序,并将其设置为一个新变量,同时保持原始数组的原样。 原始数组为“点”,新数组定义为:

points1 = sortBy(points, "x");
sortBy方法在前面定义为:

private static Point[] sortBy( Point[] pointsXY, String xOrY) {
  int min;
  Point[] inputPoints = pointsXY;

  if( xOrY == "x"){
  for( int i = 0; i < (inputPoints.length - 1); i++ ) {
     min = i;
     for( int j = i+1; j < inputPoints.length; j++ ) {
        if( inputPoints[j].getX() < inputPoints[min].getX()) min = j;  
     }
     // Swap points[i] and points[min]
     Point temp = inputPoints[i];
     inputPoints[i] = inputPoints[min];
     inputPoints[min] = temp;
  }
private static Point[]sortBy(Point[]pointsXY,String xOrY){
int-min;
点[]输入点=点xy;
如果(xOrY==“x”){
对于(int i=0;i<(inputPoints.length-1);i++){
min=i;
对于(int j=i+1;j
后面有一个“else-if”块,它改为“y”。然后它会:
返回inputPoints;

然而,当我打印出这些数组时,得到的是完全相同的东西——两个按x值排序的数组。我通过输出未排序的数组来测试输出,它工作正常。
我也尝试过使用这个方法,但它不是静态的,它给出了相同的输出。

Point[]inputPoints=pointsXY;
不复制数组,它只是为同一数组创建一个新名称(
inputPoints
)。要创建数组的副本,应该使用
Point[]inputPoints=pointsXY.clone();
().

Point[]inputPoints=Arrays.copyOf(pointsXY,pointsXY.lenght);
应该做你想做的事,当然是这么简单!谢谢,这很有魅力!