List使用add方法添加数据时的覆盖问题

本文记录了一个在使用Java中List的add方法添加数据时容易遇到的问题,即在循环中添加数据时,由于多次操作的是同一个List对象,导致数据被覆盖。问题关键在于理解add方法添加的是List的引用而非复制。解决方案是每次循环内部创建新的List实例来添加数据,避免地址引用导致的数据覆盖。
摘要由CSDN通过智能技术生成

今天在写程序时遇到一个很容易犯错的问题,下面记录一下,首先看代码:

<span style="font-size:12px;">private void loadData() {
	
	Map<String, Object> contentMap = null;
	
	classroomListItems.clear();			// classroomListItems = new ArrayList<List<Map<String, Object>>>();
	
	for(String key : MainActivity.classroomMap.keySet()) {

		contentListItems.clear();		// contentListItems = new ArrayList< Map<String, Object> >();
		
		for(int j = 0; j < MainActivity.classroomMap.get(key).size(); ++j) {
			contentMap = new HashMap<String, Object>();
			contentMap.put("courseTime",  MainActivity.classroomMap.get(key).get(j).getStarttime().substring(11, 16) + "-" 
					+ MainActivity.classroomMap.get(key).get(j).getEndtime().substring(11, 16));
			contentMap.put("courseName", MainActivity.classroomMap.get(key).ge
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值