[英]how to pass a string value in for loop to 2 dimensional array in java
[英]How to pass a two dimensional array by value in Java?
我的數組是這樣的:
int[][] arr = new int[3][4];
我想消除函數中數組發生的更改。 如何通過值將其傳遞給函數?
謝謝。
您不能按值傳遞數組。
保持原始數組不變的唯一方法是將數組的副本傳遞給您的方法。 請注意,對於多維數組,您不能使用Arrays.copyOf
來創建該副本,因為它執行淺表復制,因此不會復制內部數組(將復制其引用)。
public static int[][] cloneArray(int[][] src) {
int length = src.length;
int[][] target = new int[length][src[0].length];
for (int i = 0; i < length; i++) {
System.arraycopy(src[i], 0, target[i], 0, src[i].length);
}
return target;
}
在Java中,無法按值傳遞數組(或任何Object
)。 對Object
的引用按值傳遞,從而使該方法稱為對對象內部數據的完全訪問。
為了解決此問題,請執行以下任一操作:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.