首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维AtomicInteger阵列

二维AtomicInteger阵列
EN

Stack Overflow用户
提问于 2012-05-23 10:56:28
回答 2查看 2.3K关注 0票数 4

嘿,所以我想知道如何使AtomicInteger成为一个二维数组,从我在javadocs AtomicIntegerArray上找到的只是一个一维数组。

代码语言:javascript
复制
int[] newArray = new int[100];
AtomicIntegerArray atomicarray = new AtomicIntegerArray(newArray);

它创建一个大小为100的AtomicIntegerArray。但是我想要一个二维原子阵列。我试过做..。

代码语言:javascript
复制
AtomicInteger[][] atomicArray = new AtomicInteger[100][100];
atomicArray[00][00].set(1);

但我遇到了..。

nz.ac.massey.threadpool.MyClass.(MyClass.java:20)的java.lang.NullPointerException

有什么想法吗?谢谢!:)。我以前没有做过太多关于原子变量的工作。

如果这是不可能的,我怎么才能将一个普通的本原整数二点心数组最小化为一个AtomicInteger二点心数组呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-23 11:01:20

在访问矩阵之前,需要实例化矩阵中的所有位置,如下所示:

代码语言:javascript
复制
atomicArray[i][j] = new AtomicInteger();

或者,如果要以特定的初始值初始化每个原子整数,则为:

代码语言:javascript
复制
atomicArray[i][j] = new AtomicInteger(initialValue);

对于矩阵中的所有i,j位置。通常,您可以使用两个嵌套的for循环来完成这一任务:

代码语言:javascript
复制
for (int i = 0; i < 100; i++) {
    for (int j = 0; j < 100; j++) {
        atomicArray[i][j] = new AtomicInteger();
    }
}
票数 2
EN

Stack Overflow用户

发布于 2012-05-23 11:03:27

只要创建一个长度为m * n的一维数组,您就需要一个函数将一对整数(i, j)映射到一个整数。i * n + j是一个很好的开始。假设m是行数,n是列数。

将所有整数都保存在AtomicIntegerArray中是个好主意。否则你就得同时处理你自己了。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10718525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档