在做题的过程中,我先定义了两个List
List<List<Integer>> ans = new ArrayList<List<Integer>>();
List<Integer> t = new ArrayList<Integer>();
..............
t.add(nums[j]);
t.add(nums[i]);
t.add(nums[k]);
ans.add(t);
t.clear();
System.out.println(t);
System.out.println(ans);
在进行这一系列的操作后我的return答案ans得到的竟然是一个空的数组。
我不理解的是java中的add用法为什么将 t 插入到 ans 中后ans[0]仍然用的是 t 的地址,而不是复制一份放到自己的地址里面( t 清零ans里就清零是这样理解的吗)。另外有没有其他的解决这个问题的办法,难道必须得每次循环都创建一个新的List吗?
ans.add是指向t,你把t指向的数据都清理了,肯定没有了呀