Java 双层List内层clear之后双层list变空的问题
记录一个小问题
在用Java clear内层list之后,原doublelist也同样变为了空。
在这里双层list内层应该是直接通过地址指向该list的,所以说我们用clear该list也会导致doublelist被置空。
List<List<String>> doublelist = new ArrayList<>();
List<String> list = new ArrayList<>();
list.add("111");
list.add("222");
doublelist.add(list);
Iterator<List<String>> it = doublelist.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
list.clear();
it = doublelist.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
解决办法是:
不使用clear直接清楚内层list,而是给list重新申请空间,再new一个list
list = new ArrayList<>();
//这样之后再把list add到doublelist就不存在原list被置空的问题。