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被置空的问题。
posted @ 2022-01-18 17:34  Dre_am_tale  阅读(299)  评论(0编辑  收藏  举报