java如何排序到新数组
我正在尝试对数组a进行排序,但我希望排序后的数组保存在数组b中,并且数组a保持未排序?我怎样才能做到这一点 我尝试了Arrays.sort(a)方法,我得到了这段代码,但当我尝试访问a时,它总是按顺序排序的:\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
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;
}