这是原始问题
创建方法private static int[] sort(int[] arr){
int i,z=0,temp,y,x;
int[] secondArray = new int [arr.length];
for (i=0; i<arr.length; i++){
secondArray[z] = arr[i];
}
for (y=0; y < secondArray.length; y++) {
for (x = 0; x<secondArray.length; x++){
if (secondArray[y] < secondArray[x]){
temp = secondArray[y];
secondArray[y] = secondArray[x];
secondArray[x] = temp;
}
}
}
return secondArray;
}
,返回一个新的排序数组(递增顺序),包含与arr相同的整数集。数组arr应保持不变。
这是方法:
int[] n = {1,4,5,343,45,67};
输入:1 4 5 343 45 67
输出:"items": [
{
"id": "1",
"father_name": "YYY",
"surname": "XXX",
"name": "abc",
},
{
"id": "1",
"father_name": "YYY",
"surname": "XXX",
"name": "abc",
},
{
"id": "2",
"father_name": "ZZZ",
"surname": "UUU",
"name": "abc",
},
]
对数组arr进行排序很容易,但问题是要保持arr不变。所以我尝试创建一个新数组,并对新数组进行排序,但它不起作用。
请求帮助。
答案 0 :(得分:2)
如果您不需要手动对数组进行排序:
private static int[] sort(int[] arr){
int[] secondArray = new int[arr.length];
for (int i=0; i < arr.length; i++){
secondArray[i] = arr[i];
}
return Arrays.sort(secondArray);
}
答案 1 :(得分:1)
试试这个。您始终可以选择一些不同的方法来排序数组。
你使用的Bubblesort是最容易但不是最好的。
https://www.cs.cmu.edu/~adamchik/15-121/lectures/Sorting%20Algorithms/sorting.html
int[] old = {1,4,5,343,45,67};
int[] newOne = Arrays.copyOf(old, old.length);//copy array
Arrays.sort(newOne);//sort
System.out.println(Arrays.toString(old));
System.out.println(Arrays.toString(newOne));
答案 2 :(得分:0)
private static int[] sort(int[] arr){
return IntStream.of(arr).sorted().toArray();
}