簡體   English   中英

二維AtomicInteger數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM