首先,我很容易通过常规的方式来填充和访问数组中的数据,因此建议的解决方案不是我想要的。我试图更好地了解如何填充和访问多维数组中的数据。运行该程序时,NetBeans错误消息为:Demands
,cannot find symbol
,symbol: 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]]
答案 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 [] []