【问题标题】:ArrayList of type 2D array in JavaJava中二维数组类型的ArrayList
【发布时间】:2016-01-27 01:28:33
【问题描述】:

我已经在我的代码开头声明了一个 ArrayList:

ArrayList<int[][]> arraylists = new ArrayList<>();

由于 Netbeans 没有给我错误,我假设语法明智,这是一个有效的声明。

我添加了一个这样的二维数组元素:

int[][] newarray = {{0},{0}};
arraylists.add(newarray);

我这样调用 ArrayList:

int[][] array = arraylists.get(0);

由于我已经在 ArrayList 中添加了一些东西,所以我不会得到索引越界异常。

但是,它没有在索引 0 处获取 2D 数组。为了调试,我尝试这样做:

System.out.println("testing");
int[][] array = arraylists.get(0);

输出是这样的:testing

但是,当我尝试这样做时:

int[][] array = arraylists.get(0);
System.out.println("testing");

输出什么都没有

我认为这意味着在 ArrayList 中获取二维数组存在问题,因为没有弹出其他错误。我认为在从 ArrayList 获取 2D 数组后,最好不要提及其他任何事情。所以程序停在那里。我刚刚开始我的代码,所以这就是我到目前为止所拥有的一切,一旦这个问题得到解决,我计划继续编写代码。请注意,Netbeans 并没有提醒我说有什么问题。它只是不工作......

谁能帮我找出问题所在?

【问题讨论】:

  • 我不确定这是否能解决您的问题,但请尝试在 = 右侧的 之间添加 'int[][]'。
  • 代码是不是很短?您并没有给我们太多的帮助,而且我认为查看您当前发布的内容没有问题,因此您可能想发布MCVE
  • 我设置了一个测试场景,它对我来说效果很好。我们需要查看更多代码。 (即用于将 int[][] 数组添加到数组列表的代码)
  • @GeorgeMulligan 是的,它正处于起步阶段,我想在添加更多之前测试这个想法,看看它是否可行。但事实并非如此,这几乎就是我所拥有的。我已经编辑了代码,我已经添加了用于将元素添加到数组列表的代码

标签: java arraylist multidimensional-array


【解决方案1】:

可能只是 Netbeans 很傻。尝试清理项目并重建。这段代码工作得很好:

public static void main(String[] args) {
    List<int[][]> list = new ArrayList<>();
    list.add(new int[][]{{1,2}, {3,4}});
    int[][] twoD = list.get(0);
    System.out.println(Arrays.deepToString(twoD));
}

【讨论】:

  • 我不知道,为什么,它仍然对我不起作用。可能是因为我将 ArrayList 设置为全局变量?
  • 对我来说:System.out.println(Arrays.deepToString(twoD));不打印任何东西
  • 运行时遇到的错误能报吗?我这么说是因为@Ulises 写的代码应该可以完美运行。
  • @AntonioK 你复制粘贴了这段代码但它没有打印任何东西吗?
  • @Bifz 我做到了,它奏效了。但是,我添加了我的二维数组,但它没有。这是我不明白的。这可能是因为我将 List 设置为全局变量,因为我需要在多种方法中使用它。但它是全球性的事实应该不重要吗?
猜你喜欢
  • 2012-11-18
  • 2017-01-18
  • 2023-01-10
  • 2012-06-23
  • 1970-01-01
  • 2020-10-04
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多