Java中是否有預定義的函數來將數組中的所有整數設置爲指定值?如何在Java中初始化數組中的所有整數?
假設給出了以下數組:byte start[][][] = new byte[MAXSUM][rows][N * 2];
有沒有比3 loops
更好的方式將它初始化爲一些常量,而不是0
?
可以使用Arrays.fill()
初始化一個數組的值超過1的值嗎?
Java中是否有預定義的函數來將數組中的所有整數設置爲指定值?如何在Java中初始化數組中的所有整數?
假設給出了以下數組:byte start[][][] = new byte[MAXSUM][rows][N * 2];
有沒有比3 loops
更好的方式將它初始化爲一些常量,而不是0
?
可以使用Arrays.fill()
初始化一個數組的值超過1的值嗎?
不,沒有內置的,但它不應該看起來很醜陋與嵌套for循環。
public static void multiDimensionalFill(byte[][][] start, byte value) {
for(byte[][] firstdim : start)
for(byte[] seconddim : firstdim)
Arrays.fill(seconddim, value);
}
沒有更好的內置方式來初始化多維數組,而不是遍歷值。
Arrays.fill()僅適用於一個維數組
相比於C/C++'memset的(開始,-1,的sizeof(開始))'一個班輪它看起來笨重... – Leonid 2011-03-23 01:33:55
@Leonid不幸的是,Java不是C或C++,而且您無權訪問數組引用的低級內存。但是,您可以在項目中簡單地創建一些靜態實用程序方法,然後在需要初始化某些內容時調用「multiDimensionalFill」方法 - 解決問題。 – 2011-03-23 01:36:49
好吧,沒有人會阻止你使用一維數組,只需調用Arrays.fill並進行每次訪問從1維到n維的轉換。這是交換一個較小的不便之處,但會「工作」;) – Voo 2011-03-23 01:39:42