Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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_Sorting - Fatal编程技术网

java如何排序到新数组

java如何排序到新数组,java,arrays,sorting,Java,Arrays,Sorting,我正在尝试对数组a进行排序,但我希望排序后的数组保存在数组b中,并且数组a保持未排序?我怎样才能做到这一点 我尝试了Arrays.sort(a)方法,我得到了这段代码,但当我尝试访问a时,它总是按顺序排序的:\ public static int[] sortArray(int a[]){ int b[] = a; int len=b.length; int temp; for(int i=0;i<len-1;i++) { for(int j

我正在尝试对数组a进行排序,但我希望排序后的数组保存在数组b中,并且数组a保持未排序?我怎样才能做到这一点

我尝试了Arrays.sort(a)方法,我得到了这段代码,但当我尝试访问a时,它总是按顺序排序的:\

public static int[] sortArray(int a[]){
    int b[] = a;
    int len=b.length;
    int temp;
    for(int i=0;i<len-1;i++) {
        for(int j=0;j<len-1;j++){
            if(b[j]>b[j+1]){
                temp=b[j+1];
                b[j+1]=b[j];
                b[j]=temp;
            }
        } 
    }
    return b;
}
公共静态int[]sortArray(int a[]{
int b[]=a;
int len=b.长度;
内部温度;

对于(int i=0;i声明int b[]=new int[a.length],然后复制每个元素,如下所示:

for(int i = 0; i < a.length; ++i) {
b[i] = a[i];
}
for(int i=0;i
完整代码:

public static int[] sortArray(int a[]){
    int b[] = = new int[a.length]
for(int j = 0; j < a.length; ++j) {
    b[j] = a[j];
    }
    int len=b.length;
    int temp;
    for(int i=0;i<len-1;i++) {
        for(int j=0;j<len-1;j++){
            if(b[j]>b[j+1]){
                temp=b[j+1];
                b[j+1]=b[j];
                b[j]=temp;
            }
        } 
    }
    return b;
}
公共静态int[]sortArray(int a[]{
整数b[]==新整数[a.长度]
对于(int j=0;j
答:[5,2,4,8,4,5]

b:[2,4,4,5,5,8]

问题是你不是在创建一个新数组
b
,你只是在
b
中引用
a
。我将使用以下方法创建
b

int[] b = Arrays.copyOf(a, a.length);
然后使用
array.sort(b)
生成排序后的
b
数组而不影响
a
您需要制作
a
的深度副本,然后排序并返回该副本:

public static int[] sortArray(int a[]){
    int[] b = Arrays.copyOf(a, a.length);
    Arrays.sort(b);
    return b;
}
public static int[] sortArray(int a[]){
    int[] b = Arrays.copyOf(a, a.length);
    Arrays.sort(b);
    return b;
}