码迷,mamicode.com
首页 > 编程语言 > 详细

Java批量处理数据

时间:2016-03-20 11:49:42      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

要求:共1000条数据,第一次批量插入100条,第二次批量插入101到200条,依次插入数据;

实现方式这里选择了两种常用的方式,都是使用List操作;

第一种实现思路如下:

<1> 原先存放数据的List为recordList,求出共需批量处理的次数;

<2> 新建一个List为list,循环后,将recordList的前maxValue条数据放到list里;

<3> 调用批量处理方法,调用recordList的removeAll方法将list中的数据从recordList中清除;

<4> 调用list.clear方法清除掉list本身的数据;

/**
     * 批量插入   例如:共1000条数据,第一次批量插入100条,第二次批量插入101到200条,依次插入数据;
     * 
     * @param recordList
     * @param maxValue  批量处理的条数,如1000条
     * @return
     */
    private void batchAddRecords(List<String> recordList, int maxValue) {
        List<String> list = new ArrayList<String>();
        int size = recordList.size();
        int total = size / maxValue;
        if (size % maxValue != 0) {
            total += 1;
        }
        
        for (int i = 0; i < total; i++) {
            if (i == total - 1) {
                maxValue = size - (i * maxValue);
            }
            for (int j = 0; j < maxValue; j++) {
                list.add(recordList.get(j));
            }
            // 批量处理的方法
            print(list);
            recordList.removeAll(list);
            list.clear();
        }
    }

 

第二种实现思路类似:

通过调用recordList的subList方法,将截取后的内容保存到list中,然后调用批量处理方法,最后调用list的clear方法将list和recordList中的这部分数据清除;

需注意的是:List的subList方法有点特殊,它操作的是list和原先list所引用的同一块内存,所以需要注意些。

private void batchAddRecords2(List<String> recordList, int maxValue) {
        List<String> list = new ArrayList<String>();
        int size = recordList.size();
        int total = size / maxValue;
        if (size % maxValue != 0) {
            total += 1;
        }
        for (int i = 0; i < total; i++) {
            if (i == total - 1) {
                maxValue = size - (i * maxValue);
            }
            list = recordList.subList(0, maxValue);
            // 批量处理的方法
            print(list);
            list.clear();
        }
    }

 

Java批量处理数据

标签:

原文地址:http://www.cnblogs.com/xiaozhang2014/p/5297211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!