java - 传递数组并排序

标签 java arrays bubble-sort

大家好,我正在尝试使用数组进行排序,请检查我的代码

 public int[] Sort(int[] arr) {
   int[] value = arr;
   int min, temp, out;


   for (out = 0; out < value.length - 1; out++) {
       for (min = out + 1; min < value.length; min++) {
          if(value[out] > value[min]){
            temp = value[min];
            value[min] = value[out];
            value[out] = temp;
           }
       }
      }
     return value;
 }

这里的问题是我将数组“arr”值传递给数组“value”并对“value”数组进行排序,然后输出就是我所期望的,他对数字进行了排序,但问题是,当我尝试返回“arr”数组,它也返回一个排序值,即使我没有尝试对其进行排序..这是一个错误还是只是我丑陋的编码?

最佳答案

当您进行赋值int[] value = arr时,您为value提供了与arr相同的引用。这意味着赋值,例如 value[1] 将影响原始数组。如果您想返回一个排序数组而不影响原始数组,那么您可以尝试复制它:

public int[] Sort(int[] arr) {
    int[] value = new int[arr.length];
    System.arraycopy(arr, 0, value, 0, arr.length);

    // ...
    return value;
}

关于java - 传递数组并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37716161/

相关文章:

java - if-else 的代码约定,用于 Java 中的语句

java - 创建多种类型的 jpa 实体

list - Erlang List 连接,奇怪的 "|"符号

java - 客户端 ECC SSL 证书包含 "unknown named curve"

java - JTA集成jBPM抛出 'Connection can not be used while enlisted in another transaction'

java - 字节数组作为外部程序的标准输入/输出。

Javascript提示仅读取输入数字的第一位

python - 如何在Python中返回多维数组的子数组?

python - 不确定为什么类似于冒泡排序的程序不起作用

java - 在java中使用BUBBLE SORT对二维字符串数组进行排序