【问题标题】:Initializing 2d array in java having different data types在具有不同数据类型的java中初始化二维数组
【发布时间】:2021-02-07 11:00:29
【问题描述】:

我想在 java 中初始化一个二维数组,它可以保存不同的数据类型,如 char、int 等。我的二维数组将是这样的 -

  1 2 3 4 5 6 7
1 S S S S S S S
2 S S S S S S S
3 S S S S S S S
4 S S S S B S S
5 S S S S S S S
6 S S S S S B S
7 S S S S S S S

1 之前有一个空格,我想将它包含在我的数组中。如果我可以初始化它,我该怎么做?输入字符串值或其他内容时是否使用 ASCII 约定?请帮忙。 注意 - 我不想打印矩阵,我会手动输入这些值。

【问题讨论】:

  • 一个数组只能保存一种数据。您可以通过使用带有包装类的 Object 数组或 int 数组来解决问题,您可以在其中确切知道哪些索引可以向下转换为 char。
  • 这里很有可能需要用到char二维数组。当然,使用 2D 原始对象数组是可能的,但在这种情况下,您无法确定数组的每个单元格中存储了哪种类型。
  • 请记住,切换到非类型化数据结构是一个非常糟糕的主意。什么是模式,在您的情况下,数字只是“坐标”,可以从数组索引轻松计算...

标签: java arrays multidimensional-array


【解决方案1】:

如果您想在数组中使用单个原始类型,我看到了两种解决方案,或者将数字视为字符,这样您就可以拥有一个 char 数组

char[][] array2d = new char[8][8]

或者干脆忽略数字,只包含字符并从数组中的索引 (x,y) 中减去正确的数字

char[][] array2d = new char[7][7]

所以对于 array2d[3][5],数字将是 4 和 6

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-10
    • 1970-01-01
    • 2014-09-13
    • 2017-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    相关资源
    最近更新 更多