无法访问嵌套列表元素Java 8的值

时间:2017-09-15 05:54:53

标签: java arraylist netbeans integer

首先,我很容易通过常规的方式来填充和访问数组中的数据,因此建议的解决方案不是我想要的。我试图更好地了解如何填充和访问多维数组中的数据。运行该程序时,NetBeans错误消息为:Demandscannot find symbolsymbol: method get(int)。我查看了location: class Integer的{​​{1}}方法,对我来说,似乎我正在尝试访问该数据,但有些事情是不对的。此外,在程序代码的最后一条声明中,NetBeans说.get()。我猜这是因为当我尝试打印每个嵌套元素的值时,每个值都希望作为ArrayList访问,这只是猜测。

所以我要填充的数组应该如下所示:incompatible types: ArrayList<Integer> cannot be converted to Object[],输出应该如下所示。

String

[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

3 个答案:

答案 0 :(得分:2)

列表是一维结构,但您可以使用任何聚合元素。另一个List作为元素导致二维数组。

List<List<Integer>> table = new ArrayList<>();

// populate the array one nested element at a time
for (int i = 0; i < 3; ++i) {
  List<Integer> row;
  table.add( row = new ArrayList<Integer>() );
  for (int j = 0; j < 4; ++j) {
    row.add( (i * 4) + j + 1);
  }
}

for (int i = 0; i < table.size(); ++i) {
  for (int j = 0; j < table.get(i).size(); ++j) {
    System.out.print( " " + table.get(i).get(j));
  }
  System.out.println();
}

你可以使用适当的数组做同样的事情。

答案 1 :(得分:0)

您的表格为Arraylist

table.get(i)

将为您提供在微粒位置设置的整数值,因为您在数组中使用行设置整数:

   table.set(i, (i * 4) + j + 1);

所以get(i)只给出整数值而不是数组或列表

答案 2 :(得分:-2)

是的。抱歉。 您无法访问get(j),因为List只是一个列表(一维)。 您应该使用原始Array [] []