首页 > 解决方案 > 为什么不能通过两个参数交换数组的两个元素?

问题描述

public class Utility {
    public static final <T> void swap(T a, T b) {
        T temp = a;
        a = b;
        b= temp;
    }
    
    public static final <T> void swapArr(T[] arr, int a, int b) {
        T temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;
    }
}

为什么Utility.swap(a[i], a[j]);不能正确交换数组的两个元素,但Utility.swapArr(arr, i, j);工作正常?

标签: javaarraysswap

解决方案


推荐阅读