java如何排序到新数组

时间:2015-05-23 16:18:38

标签: java arrays sorting

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

我已经尝试了Arrays.sort(a)方法并且我已经获得了这一小段代码,但是当我尝试访问时,它总是排序:\

using

4 个答案:

答案 0 :(得分:2)

int[] a = new int[]{5,2,4,8,4,5};
int[] b = Arrays.copyOf(a, a.length);
Arrays.sort(b);

内容:
a:[5,2,4,8,4,5]
b:[2,4,4,5,5,8]

答案 1 :(得分:2)

您需要制作/lib/modules/3.16.0-34-generic/modules.dep深层副本,然后排序并返回该副本:

a

答案 2 :(得分:1)

问题是您没有创建新数组b,而只是ba进行了另一次引用。我会使用:

创建b
int[] b = Arrays.copyOf(a, a.length);

然后使用Arrays.sort(b)生成排序的b数组,而不会影响a

答案 3 :(得分:0)

声明int b [] = new int [a.length]然后复制每个元素,如:

for(int i = 0; i < a.length; ++i) {
b[i] = a[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;
}