嘿,所以我想知道如何使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.(MyClass.java:20)的java.lang.NullPointerException
有什么想法吗?谢谢!:)。我以前没有做过太多关于原子变量的工作。
如果这是不可能的,我怎么才能将一个普通的本原整数二点心数组最小化为一个AtomicInteger二点心数组呢?
发布于 2012-05-23 11:01:20
在访问矩阵之前,需要实例化矩阵中的所有位置,如下所示:
atomicArray[i][j] = new AtomicInteger();或者,如果要以特定的初始值初始化每个原子整数,则为:
atomicArray[i][j] = new AtomicInteger(initialValue);对于矩阵中的所有i,j位置。通常,您可以使用两个嵌套的for循环来完成这一任务:
for (int i = 0; i < 100; i++) {
for (int j = 0; j < 100; j++) {
atomicArray[i][j] = new AtomicInteger();
}
}发布于 2012-05-23 11:03:27
只要创建一个长度为m * n的一维数组,您就需要一个函数将一对整数(i, j)映射到一个整数。i * n + j是一个很好的开始。假设m是行数,n是列数。
将所有整数都保存在AtomicIntegerArray中是个好主意。否则你就得同时处理你自己了。
https://stackoverflow.com/questions/10718525
复制相似问题