0

我试图有一个 16 行 x 11 列的二维数组,其中第 0 行、第 3 列是对另一个数组的引用,该数组是一维数组。我该怎么做呢?我已经有两个数组,其中一维数组是 char 数组(尽管如果我愿意,我可以将其设为字符串数组)并且二维数组是字符串数组。2D 数组的其余部分为每个元素填充了纯字符串,但第 0 行第 3 列除外,我希望它是一维数组。

4

3 回答 3

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!
于 2012-09-30T23:34:01.247 回答
0

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

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

于 2012-09-30T23:29:23.297 回答
0

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

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

由于它们实现了一个通用接口,因此您可以使用该接口创建一个二维数组。那种二维数组可以在它的任何地方接受任何类型的两个对象。

于 2012-09-30T23:34:38.720 回答