//I want my to be something like this: [[0,0],[0,1],[0,2].....,[4,2],[4,3]]
public class Japan {
public static void main(String[]args) {
ArrayList<ArrayList<Integer>> nodes = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> nodeList = new ArrayList<Integer>();
for(int i =0;i<5;i++) {
for(int j=0;j<4;j++) {
nodeList.add(i);
nodeList.add(j);
nodes.add(nodeList);
nodeList.remove(1);
nodeList.remove(0);
}
}
System.out.println(nodes);
}}
-2
A
回答
0
你的问题是因为您正在重新使用相同的内部ArrayList - 您将内部ArrayList添加到外部ArrayList几次,并且添加到内部ArrayList的所有内容都将被删除,因此当您打印它时,内部li st是空的。
nodes.add(nodeList)
确实不是复制nodeList
- 它增加了对同一个列表的引用。
你需要,当你调用nodes.add
要么创建一个副本:
public class Japan {
public static void main(String[]args) {
ArrayList<ArrayList<Integer>> nodes = new ArrayList<ArrayList<Integer>>();
ArrayList<Integer> nodeList = new ArrayList<Integer>();
for(int i =0;i<5;i++) {
for(int j=0;j<4;j++) {
nodeList.add(i);
nodeList.add(j);
nodes.add(new ArrayList<>(nodeList)); // This copies nodeList, and adds the copy to nodes
nodeList.remove(1);
nodeList.remove(0);
}
}
System.out.println(nodes);
}}
或通过循环创建一个新的内部列表中的每个时间:
public class Japan {
public static void main(String[]args) {
ArrayList<ArrayList<Integer>> nodes = new ArrayList<ArrayList<Integer>>();
for(int i =0;i<5;i++) {
for(int j=0;j<4;j++) {
ArrayList<Integer> nodeList = new ArrayList<Integer>(); // this creates a new list each time it is executed
nodeList.add(i);
nodeList.add(j);
nodes.add(nodeList);
}
}
System.out.println(nodes);
}}
这两项工作,但我(可能大多数程序员)发现第二个更容易理解,所以我更喜欢这种方法。 (如果你不能看到为什么第二个是更容易理解,它会来找你的时候)
+0
感谢帮帮我 – 2015-01-21 09:02:47
0
你需要确保你对每个i
指标的初始化列表,
for(int i = 0; i < 5; i++){
list.add(new ArrayList<Object>());
}
然后执行以下操作:
for(int i = 0; i <5; i++){
for(int j = 0; j < 4; j++){
list.get(i).add(j);
}
}
+0
感谢您的时间迈克 – 2015-01-21 09:04:09
相关问题
- 1. AlertDialog不希望被显示
- 2. sp_executesql的不显示期望的结果
- 3. 希望循环在每次迭代中逐一显示结果
- 4. Unpivot多列不显示欲望结果
- 5. 希望显示的div
- 6. 我不希望MySQL对发现的结果进行排序
- 7. 为2条规则使用.htaccess时出现不希望的结果
- 8. CheckBox值和希望显示
- 9. 不显示我希望它们显示的精灵
- 10. 从PHP中的sql查询过滤不希望的结果
- 11. 我希望搜索结果显示在列中,但只有文字确实
- 12. Python--打印结果示出“无”和期望的结果
- 13. 输出是不希望
- 14. 如果出现警告框,我不希望将一行添加到表中
- 15. 不显示结果
- 16. 设定的超时给予不希望的结果
- 17. 我希望当我通过鼠标在Li上时,结果显示在div
- 18. 如何在输出窗口显示MD5哈希结果? Java
- 19. 加入SQL查询不会放弃希望的结果
- 20. MySQL查询不会放弃希望的结果
- 21. 全文搜索不放弃希望的结果
- 22. 逻辑表达式不会放弃希望的结果
- 23. jQuery Nivo滑块中的图片在加载时出现不希望的现象
- 24. 在C中,当提示用户输入字符串时,不希望的输出结果
- 25. Android-only ResultSet显示在ArrayList中的最后一个结果
- 26. 在arraylist中显示重复的结果java
- 27. ImageView的不希望它被setAlpha()隐藏后出现
- 28. 双水平滚动条显示出来,只有1希望
- 29. 当在类中显示结果时出现ion-item错误
- 30. 在弹出窗口中显示结果
看起来你需要输入一些代码... – Dima 2015-01-21 02:47:57