我有2个arraylist
ArrayList<List<Integer>> main = new ArrayList<>();
ArrayList<Integer> sub=new ArrayList<>();
sub.add(1);
sub.add(2);
main.add(sub);
sub.clear();
sub.add(5);
sub.add(6);
sub.add(7);
main.add(sub);
Run Code Online (Sandbox Code Playgroud)
现在我希望主要是
what i expect main-->[[1,2],[5,6,7]] ;
but really main-->[[567],[567]];
Run Code Online (Sandbox Code Playgroud)
我认为子阵列共享参考..所以我该怎么做
main as [[1,2],[5,6,7]
Run Code Online (Sandbox Code Playgroud)
我无法创建sub1,sub2,...因为实际上我在巨大的循环内执行此操作
您正在修改列表并再次添加它,这就是[567]出现两次的原因.我建议您更改代码如下:
ArrayList<List<Integer>> main = new ArrayList<>();
ArrayList<Integer> sub = new ArrayList<>();
sub.add(1);
sub.add(2);
main.add(sub);
sub = new ArrayList<>();
sub.add(5);
sub.add(6);
sub.add(7);
main.add(sub);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |