[英]Two Dimensional AtomicInteger array
嘿所以我想知道如何使AtomicInteger成為一個二維數組,從我在javadocs上發現的AtomicIntegerArray只是單維。
int[] newArray = new int[100];
AtomicIntegerArray atomicarray = new AtomicIntegerArray(newArray);
這會創建一個大小為100的AtomicIntegerArray。但我想要一個具有兩個維度的原子陣列。 我試過做..
AtomicInteger[][] atomicArray = new AtomicInteger[100][100];
atomicArray[00][00].set(1);
但我遇到了......
nz.ac.massey.threadpool.MyClass上的java.lang.NullPointerException。(MyClass.java:20)
那么任何想法? 謝謝! :)我之前沒有做過很多關於原子變量的工作。
如果這是不可能的,我怎樣才能將一個常規的原始整數二個dim數組最小化成一個AtomicInteger兩個dim數組?
只需創建一個長度為m * n
的一維數組,然后需要一個將一對整數(i, j)
映射到一個整數的函數。 i * n + j
是一個好的開始。 假設m
是行數, n
是列數。
將所有整數保留在AtomicIntegerArray中是個好主意。 或者你必須處理你自己的並發。
在訪問矩陣之前,您需要實例化矩陣中的所有位置,如下所示:
atomicArray[i][j] = new AtomicInteger();
或者,如果要初始化某個初始值中的每個原子整數:
atomicArray[i][j] = new AtomicInteger(initialValue);
對於所有i,j
矩陣中的i,j
位置。 通常你會使用幾個嵌套for
循環來做到這一點:
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
atomicArray[i][j] = new AtomicInteger();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.