我有一个2D ArrayList
List<List<String>> transitionTable = new ArrayList<List<String>>()
如果我是正确的,那就添加“行”(如果我错了,请纠正我)
transitionTable.add(new ArrayList<String>())
我如何添加相当于一列?使用像这样的for循环?:
for (int i = 0; i < transitionTable.get(0).size(); i++)
{
transitionTable.get(i).add("something");
}
编辑:现在无法弄清楚为什么它会在某一点之后停止添加,它始终处于索引状态 i =任何东西(取决于我迭代循环的次数“ j = 1(总是)
我忘了提到我的目标是nxn 2d arraylist(基本上是一个方格)
到目前为止,这是我的代码:
transitionTable.add(new ArrayList<String>()); //Adds a new row
if (transitionTable.size() == 1)
{
transitionTable.get(0).add("NULL"); //Adds a new column.
}
else
{
for (int i = 0; i < transitionTable.get(0).size(); i++)
{
transitionTable.get(i).add("NULL"); //Adds a new column (needs to iterate for each row to create something like a column)
}
}
答案 0 :(得分:0)
我建议使用临时“引用”ArrayList,如下所示:
List<List<String>> templist = new ArrayList<List<String>>();
for(List<String> list1 : transitionTable) {
list1.add("String whatever");
templist.add(list1);
}
transitionTable = templist;
修改:意外过早发布。
答案 1 :(得分:0)
目前,每次迭代都会在第一列中添加一个值,因为它们是空的;
添加三个arraylists后;
transitionTable
- ArrayList[0] - []
- ArrayList[1] - []
- ArrayList[2] - []
使用你的循环后;
transitionTable
- ArrayList[0] - [something]
- ArrayList[1] - [something]
- ArrayList[2] - [something]
但是当你为每个列表添加更多项目时,你需要专门编辑arraylist中的位置!正如大卫华莱士所说,你很接近,我希望上述信息有所帮助!
答案 2 :(得分:0)
Java List
(和ArrayList
只是一种实现)是一种表示事物列表的方法,例如:
Animal
或Contact
。将它们视为纸上列表。他们有订单(但不一定排序),可以添加新项目,删除项目,您可以通过索引访问它们或按顺序迭代它们。
那么List
的{{1}}到底是什么样的?基本上,这样的事情:
〖&#34;这&#34;,&#34;那&#34; 〖&#34;〗东西&#34; 〖〗〖&#34;〗A&#34; &#34;一束&#34; &#34;中&#34; &#34;几个&#34; 〗
这是四个项目的列表。每个项目都是一个字符串列表。注意一些重要的事情:它里面的列表仍然是列表,它们彼此独立,就像整数列表中的数字一样。因此,内部的每个列表都可以有不同数量的项目。
如果要使用列表列表来表示表格,请务必记住这一点。表是每行中具有相同数量项的对象。你有一个专栏的概念。在Excel中,您可以将列一起复制到其他位置。
使用列表列表并没有为您提供等长行和可分离列的概念。至少,不是直接的。如果你用它来表示一个表,你应该把它包装在一个类中,这个类确保每次扩展一行时,所有其他的都被扩展,并允许你做一些事情,比如返回整列或删除整列
它将通过循环遍历行并分别对每个子列表执行操作来实现。
你可以使用列表列表作为一个表,即使没有像上面那样包装它,如果你实际上并不需要所有这些操作,你只需要将一个表的基本实现作为其他内容的一部分。你仍然需要注意填写和检索&#34;列&#34;通过循环遍历行并访问每个行上的所需列。