这是我的第一篇文章,因此如果出现任何错误,请原谅。

在我编写的该程序中,用户一次从键盘输入一个整数,
例如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。您对newNumnum所做的任何更改都将反映在另一个中。它们是相同的ArrayList实例。

您可能想构造一个包含相同元素的新ArrayList实例。

ArrayList<Integer> newNum = new ArrayList<Integer>(num);

08-07 01:32