为了账号安全,请及时绑定邮箱和手机立即绑定

java 每从数组里面获取1000条数据

java 每从数组里面获取1000条数据

慕丝7291255 2018-07-23 10:14:09
批量删除用户,传过来的是一个integer[] ids,长度0~100万不定,当数据量大的时候删除太慢或者删除不了,现在想每次删1000条,时间长点可以接受,想知道怎么每次从ids取1000条,或者其他有更好的方案也可以,删除用户需要删除关联的东西太多,不能直接用sql in来删
查看完整描述

1 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

参考如下示例代码:

 package com.example.test;

import java.util.Arrays;

public class Test {
    public static void main(String[] args) {
        int maxRange = 2600;
        int[] ids = new int[maxRange];
        for (int i = 0; i < maxRange; i++) {
            ids[i] = i;
        }

        int PER_QUERY_COUNT = 1000; //每次查询数量

        int from = 0; //起始索引
        int to = PER_QUERY_COUNT; //结束索引

        for (int j = 0; j < ids.length; j += PER_QUERY_COUNT) {
            //将一个原始的数组original,从小标from开始复制,复制到小标to,生成一个新的数组。
            // 注意这里包括下标from,不包括下标to。
            System.out.println("from=" + from + ",to=" + to);
            int[] temp = Arrays.copyOfRange(ids, from, to);
            for (int id : temp) {
                System.out.print(id + ",");
            }
            from += PER_QUERY_COUNT;
            to += PER_QUERY_COUNT;
            if (to > ids.length) {
                to = ids.length;
            }
            System.out.println("\r");
        }
    }
}



查看完整回答
反对 回复 2018-08-10
  • 1 回答
  • 0 关注
  • 1227 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信