首页 > 解决方案 > 为什么数组没有被修改

问题描述

public static void main(String[] args) {
        // TODO Auto-generated method stub
        int[] nums= {3,5,2,8,9,11,1};
        Arrays.stream(nums).forEach(System.out::print);
        System.out.println();
        rotate(nums,3);
        Arrays.stream(nums).forEach(System.out::print);

    }
     public static void rotate(int[] nums, int k) {
            int[] arr=new int[nums.length];
            int j=0;
            int x=k;
            for(int i=nums.length-k;i<nums.length && k>0;i++, j++)//3
            {
                arr[j]=nums[i];
                k--;
            }
          //  Arrays.stream(arr).forEach(System.out::println);
            for(int i=0;i<nums.length-x;i++)
            {
                arr[j]=nums[i];
                j++;
            }
            //Arrays.stream(arr).forEach(System.out::println);
            nums=Arrays.copyOf(arr, arr.length);
            
        }

这是我编写的用于旋转数组元素的程序。在旋转方法中,nums 正在被修改,但它没有反映在 main 方法中。我在这里做错了什么?

这是我得到的输出:

标签: javaarrays

解决方案


推荐阅读