存储在对象数组中的基本数组的属性

时间:2019-05-06 02:19:22

标签: java arrays

我目前正在调试一些代码,我不知道哪种方法是获取和设置对象数组中值的最佳方法。

例如,假设我有一个名为Object[]的{​​{1}}:

foo

在我要调试的代码中,类似于Object[] foo = new Object[2]; foo[0] = new double[] {1.0, 2.0, 3.0}; foo[1] = new double[][] {{4.0, 5.0, 6.0}, {7.0, 8.0, 9.0}}; 的数组具有大量可读写的元素。有时,两个线程可能会同时访问foo的不同元素(例如,一个线程可能会对foo和另一个foo[1][0]进行读/写,但是两个线程都不会同时访问foo[1][1]同时)。

我的问题是:在任何情况下,foo的某些元素在读取/写入时的行为都不会像典型数组那样吗?

典型用法示例:(假设foo是类成员)

情况1:尝试在函数内部读取和写入foo[1]

double[][] arr = (double[][]) foo[1];
arr[1][0] = 1.5; //foo should not change

情况2:尝试写入foo[1]

Object[] foo;
void func1() {
    foo = new Object[2];
    foo[0] = new double[]    {1.0, 2.0, 3.0};
    foo[1] = new double[][] {{4.0, 5.0, 6.0},
                             {7.0, 8.0, 9.0}};
}
double[] func2() {
    return new double[] {10.0, 20.0};
}
public static void main(String[] args) {
    func1();
    ((double[][]) foo[1])[0] = func2();
}

0 个答案:

没有答案