数组的元素作为另一个数组的引用?

时间:2012-09-30 23:13:03

标签: java

我正在尝试使用16行乘11列的2D数组,其中第0行,第3列是对另一个单维数组的数组的引用。我该怎么做呢?我已经有两个数组,其中单维数组是一个char数组(虽然我可以使它成为一个字符串数组,如果我想),2D数组是一个字符串数组。 2D数组的其余部分用每个元素的纯字符串填充,但第0行,第3列除外,我希望它是单维数组。

3 个答案:

答案 0 :(得分:2)

Object[] arrayToReference = ...;
Object[][] arrayWithReference =  new Object[] { ..., arrayToReference, ...};

这应该有用;只需引用数组,它应该随原始更改而改变

以下是一个示例代码段:

    Object[] array = new Object[] { "Test!" };
    Object[][] arrayArray = new Object[][] { array };
    System.out.println("Before: " + arrayArray[0][0]);
    array[0] = "Test2!";
    System.out.println("After: " + arrayArray[0][0]);

具有以下输出:

Before: Test!
After: Test2!

答案 1 :(得分:0)

这听起来像是你解决问题的方法是错误的。也许你应该重新考虑你的数据结构。通常,键入数组。你无法真正决定在一个单元格中插入不同的类型。

如果你真的无法改变数据结构,尝试在每个单元格中插入一个单维数组的字符串,其中只有一个条目,这是正常的字符串,除了第0行,第3列,已经是一个数组。

答案 2 :(得分:0)

我正在考虑一些矫枉过正的解决方案,但应该通过一些改进来解决这个问题。如果有可能的话。

你能创建两个实现相同接口的类吗?第一个是2D数组的类型,另一个是1D数组的类。

由于它们实现了一个通用接口,您可以使用该接口创建一个2D数组。这种2D数组可以在其中的任何位置接受任何类型的两个对象。