java如何在这段代码中只使用一个数组实例?
这个问题将是愚蠢的。但是有人能给我解释一下为什么我不能对两个方法使用相同的数组int[]a1吗
假设我有一个数组对象类
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
public class ArrayObject implements ArrayFunctions {
private int[] arr;
public ArrayObject(int[] arr) {
super();
this.arr = arr;
}
@Override
public int[] sortAsc() {
Arrays.sort(arr);
return arr;
}
@Override
public int[] sortDesc() {
int temp;
int size = arr.length;
for (int i = 0; i < size/2; i++)
{
temp = arr[i];
arr[i] = arr[size-1 - i];
arr[size-1 - i] = temp;
}
return arr;
}
}
然后在主类中
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a1 = {2,9,45,7,46,35,89,12,456,12,5,35,4,98,34};
ArrayObject arr1 = new ArrayObject(a1);
ArrayObject arr2 = new ArrayObject(a1);
int[] sortedArray = arr1.sortAsc();
int[] sortDescArray = arr2.sortDesc();
System.out.println(Arrays.toString(sortedArray));
System.out.println(Arrays.toString(sortDescArray));
}
}
结果是:
[456,98,89,46,45,35,35,34,12,12,9,7,5,4,2]
[456,98,89,46,45,35,35,34,12,12,9,7,5,4,2]
如何在两种数组排序方法中重复使用数组int[]a1,而不使用相同元素创建新数组
根据我的代码
ArrayObject arr2 = new ArrayObject(a1);
ArrayObject的另一个实例是否会使用arr1的相同元素创建一个全新的数组
请帮忙
# 1 楼答案
现在是模拟时间:
如果杰克有一个1加仑的桶,他可以装满一加仑的啤酒,也可以装满一加仑的苹果酒。但是杰克不能在一加仑桶里同时装满一加仑啤酒和一加仑苹果酒
同样,千斤顶可以用棍子搅动铲斗内容物,使其顺时针或逆时针旋转。但是杰克不能让啤酒/苹果酒/水/任何东西同时向两个方向旋转
当杰克和吉尔从off-license拿着他们的桶回来时1它仍然只是一个桶最多只能装一加仑。。。尽管事实上杰克和吉尔都同时握着把手
数组就像一个桶。如果两个
ArrayObject
实例共享一个数组,那么它仍然只是一个数组。它可以按升序或降序排序。。。但并非两者同时出现21-。。。啤酒:在这个版本的故事中,他们是大学生
2-。。。除非所有数组元素值都相同