zoukankan      html  css  js  c++  java
  • Java批量处理数据

    要求:共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();
            }
        }

     

  • 相关阅读:
    javascript编程——闭包概念
    Chromium源码编译和初步的代码阅读
    No Code 趋势小记
    Electron中require报错的解决与分析
    C# 值类型与引用类型
    C# 静态成员 和 实例成员
    C# 标识符 和 关键字
    C# 基础知识
    Taghepler
    JQuery 速查表
  • 原文地址:https://www.cnblogs.com/xiaozhang2014/p/5297211.html
Copyright © 2011-2022 走看看