关于java List 添加数据的方法的使用

List  添加元素的方法通常有① boolean add(E e); ② void add(int index, E element);

① boolean add(E e);每次添加的元素被放置在list的尾部;

② void add(int index, E element);在插入操作过程中指定插入的位置,此时,会自动将当前位置及只有的元素后移进行插入.

需要注意的是,参数index的值不可大于当前list的容量,即不可以随便新建一个list,向其任意的位置插入元素。即便使用new ArrayList(100);在第一次插入时也不能使用list.add(100,1);

1、当业务需要随机向list的每个位置插入数据时,可以使用

List newList = new ArrayList<>();
for(int y=0;y<100;y++){
    newList.add("");
}

事先向list中插入空数据,然后使用

newList.set(100, 1);

2、或者将业务数据进行排序,使用① boolean add(E e);方法

或者从0开始依次插入数据② void add(int index, E element);

3、关于代码的bug 

向二维数组list<list>中插入数据,横向是头是日期,星期,车辆编号;竖向第一列是该月日期,第二列是该月的日期对应的星期。

从横向数组第2列开始遍历车辆编号,取出每车的数据,然后竖向遍历日期,取出每天的数据。

在这个循环的过程中,data循环一直是从0到最后进行data.add(index,data);但是最后循环25次后出现了数组下标越界的情况,暂时未发现出现这个问题的原因。

 

int dayNumOfMonth = getDaysByYearMonth(year, m);//获取该月所有天数
    for (int d = 1; d <= dayNumOfMonth; d++) {
		StringBuffer sb = new StringBuffer();
		sb.append(year).append("-").append(m>9?m:"0"+m).append("-").append(d>9?d:"0"+d);
			
				
		Date date = simpleDateFormat.parse(sb.toString());

	    data.add(new ArrayList<>(100));
	            
	    data.get(d).add(0, sb.toString());//设置日期
	    data.get(d).add(1, getWeekOfDate(date));//设置星期
}

//dataMaps <车辆,Map<日期,数据>>

//遍历车辆
for (int j= 2;j<data.get(0).size();j++) {//定位所在列
		//遍历data中的第一列
		for (int x = 1; x <= dayNumOfMonth;x++) {//定位所在行
		    //查询数据回填到
		    Map<String,String>  dataMap = dataMaps.get(data.get(0).get(j));
		    if(dataMap!=null){
				 data.get(x).add(j,dataMap.get(data.get(x).get(0)));
		    }
		}
} 

 

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值