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