这是我的第一篇文章,因此如果出现任何错误,请原谅。
在我编写的该程序中,用户一次从键盘输入一个整数,
例如2 4 5 1 3
如果在其他方法之前调用反向方法,则返回3 1 5 42。但是,如果调用sort方法,给我们1 2 3 4 5,则调用反向方法,则得到5 4 3 2 1。有什么主意,即使调用了其他方法后,如何获得逆向值以返回原始输入的逆序?
public static void reverse(ArrayList<Integer> num) {
ArrayList<Integer> newNum= new ArrayList<Integer>();
newNum = num;
Collections.reverse(newNum);
System.out.println(newNum);
}
最佳答案
每次您这样做:
newNum = num;
您使
newNum
指向与ArrayList
相同的num
。您对newNum
或num
所做的任何更改都将反映在另一个中。它们是相同的ArrayList
实例。您可能想构造一个包含相同元素的新
ArrayList
实例。ArrayList<Integer> newNum = new ArrayList<Integer>(num);