複製collection

針對原list.clear()時,但需要保存未clear之前的數據,如以下code


		List<Integer> list = new ArrayList<Integer>();
		list.add(1);
		list.add(2);
		//1.直接把list所指向內存對象copy給自己的內存空間(有效)
		//List<Integer> copyList = new ArrayList<Integer>(list);
		List<Integer> copyList = new ArrayList<Integer>();
		//2.只是引用指向了list 但是list所指向的內存還是自己管理(無效)
		//copyList = list;
		//3.同1(有效)
		//copyList.addAll(list);
		//4.(有效)
		/*
		for (Integer integer : list) {
			copyList.add(integer);
		}*/
		copyList.add(3);
		copyList.add(5);
		copyList.add(1);
		//5.此種方式copyList.size()>=list.size()有效,不然java.lang.IndexOutOfBoundsException
		Collections.copy(copyList, list);
		list.clear();
		System.out.println(copyList.size());
		

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章