List<String> mStrings=new ArrayList<>();
//初始化
for (int i = 0; i < 1020; i++) {
mStrings.add(String.valueOf(i));
} List<List<String>> newStrings = new ArrayList<>();
if (mStrings.size() > 100) {
if (mStrings.size() % 100 > 0) {
for (int i = 0; i < mStrings.size() / 100 + 1; i++) {
if (i == mStrings.size() / 100) {
List<String> newstr = new ArrayList<>();
newstr.addAll(mStrings.subList(100 * i, (mStrings.size() - 1)));
newStrings.add(newstr);
newstr.clear();
} else {
List<String> newstr = new ArrayList<>();
newstr.addAll(mStrings.subList(100 * i, 100 * (i + 1)));
newStrings.add(newstr);
newstr.clear();
}
}
} else {
for (int i = 0; i < mStrings.size() / 100 + 1; i++) {
List<String> newstr = new ArrayList<>();
newstr.addAll(mStrings.subList(100 * i, 100 * (i + 1)));
newStrings.add(newstr);
}
}
}

把 mStrings集合分为100个元素一组,主要使用了List的subList方法,但在使用过程中有一个坑,如果把代码中的newstr.addAll变为newstr=来为newstr赋值的话,虽不会对最后结果产生影响,但,一开始初始化数据的mStrings却被清空了,原因是newstr=(mStrings.subList(100 * i, (mStrings.size() - 1)));中的subList方法与=号使数据源指向的是同一个集合数据,清除后mStrings的数据也被清除。

有兴趣的可以把下面的java代码跑一下

test.java

import java.util.*;
public class test{
public static void main(String args[]){
List<String> mStrings=new ArrayList<>();
List<String> newStrings = new ArrayList<>();
init(mStrings);
newStrings=(mStrings.subList(0,mStrings.size()));
newStrings.clear();
System.out.println(mStrings.size()); } public static void init(List<String> mStrings){
for (int i = 0; i < 1020; i++) {
mStrings.add(String.valueOf(i));
} }
}

List集合数据太多进行分批,List的subList方法应用的更多相关文章

  1. ASP.NET MVC 表单提交多层子级实体集合数据到控制器中

    于遇到了项目中实体类嵌套多层子级实体集合,并且子级实体集合的数据需要提交保存到数据库中的问题.针对此情况需要进行一些特殊的处理才可以将整个 实体类及子级实体集合数据提交表单到控制器中,解决的方法是根据 ...

  2. JAVA大集合数据分批次进行切割处理

    今天遇到一个大集合里面的数据删除问题, 因为是一个大集合,如果同时传递到数据库,那么就会造成数据库压力 所以分批次的进行批量操作 其实 也可以采用多线程来处理或者多批次加多线程来处理都是可以的 下面的 ...

  3. WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇)

    原文:WCF技术剖析之十四:泛型数据契约和集合数据契约(下篇) [爱心链接:拯救一个25岁身患急性白血病的女孩[内有苏州电视台经济频道<天天山海经>为此录制的节目视频(苏州话)]]在.NE ...

  4. hdu 4940 数据太水...

    http://acm.hdu.edu.cn/showproblem.php?pid=4940 给出一个有向强连通图,每条边有两个值分别是破坏该边的代价和把该边建成无向边的代价(建立无向边的前提是删除该 ...

  5. REDIS scan与sunionstore合并多集合数据

    实际业务场景: 现需求要将多个KEY的set集合数据合并到一个总集合中,思路:通过scan分批扫描满足条件的KEY,然后用sunionstore分批合并. 注意闭坑:此种解决方案只适用于待合并的集合K ...

  6. 关于chart.js 设置canvas的宽度为父级元素的宽度的百分百 以及 X轴上面刻度数据太多如何处理

    今天在做一个数据统计的界面的时候,需要做折线统计图,在网上找了一圈发现数据统计的插件还是不少的,本着轻量级的的原则选择了Chart.js,后来在做的过程中便遇到两个问题,以此记录下来,和刚刚接触前端的 ...

  7. mybatis插入List集合数据

    处女帖 今天做完一个定时任务将一个表中的数据每天统计到另外一个表中,开始是用循环的方式向数据库添加,觉得数据库可能访问压力过大,所以就使用了mybatis的foreach标签来稍微的减少压力. 首先封 ...

  8. 关于springmvc接受简单参数和List集合数据的实现

    首先要创建一个搭建一个springmvc的工程,至于如何搭建这里就不说了.给出比较重要的配置,项目目录结构如下,弄的比较简单,因为最近遇到一个需要传递List集合数据的问题,所以就当做实验. web. ...

  9. java-redis集合数据操作示例(三)

    redis系列博文,redis连接管理类的代码请跳转查看<java-redis字符类数据操作示例(一)>. 一.集合类型缓存测试类 public class SetTest { /** * ...

随机推荐

  1. Mac系统-java环境搭建_01

    一.安装jdk 下载地址:http://www.oracle.com/technetwork/Java/javase/downloads/index-jsp-138363.html 1.傻瓜式安装下一 ...

  2. WebGL 创建和初始化着色器过程

    1.编译GLSL ES代码,创建和初始化着色器供WebGL使用.这些过程一般分为7个步骤: 创建着色器对象(gl.createBuffer()); 向着色器对象中填充着色器程序的源代码(gl.shad ...

  3. 优化php性能的一点总结

    图示为100个并发,请求1000次目标地址 进行测试 最重要的两个参数:Requests per second :每秒接受请求数,这里每秒接收101个请求 Time per request:一个请求用 ...

  4. 学习css之文本属性

    css3之文本属性: 1.缩进和水平对齐:text-indent, 通过使用 text-indent 属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值. 这个属性最常见的用途是将段 ...

  5. 详解Executor框架

    在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...

  6. 容器 What, Why, How - 每天5分钟玩转容器技术(6)

    学习任何东西都可以按照3W的框架进行,容器技术也是一样,先回答 What.Why 和 How 这三个问题. What - 什么是容器? 容器是一种轻量级.可移植.自包含的软件打包技术,使应用程序可以在 ...

  7. java8 Lambda表达式的新手上车指南(1)

    背景 java9的一再推迟发布,似乎让我们恍然想起离发布java8已经过去了三年之久,java8应该算的上java语言在历代版本中变化最大的一个版本了,最大的新特性应该算得上是增加了lambda表达式 ...

  8. Java中四种遍历List的方法

    package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterator; imp ...

  9. MYSQL不能从远程连接的解决方法

    为了在其它电脑上能用root用户登录,需进行以下动作: 首先在mysql服务器端打开mysql 1. mark>mysql -u root -p //输入密码,进入MySQL服务器 2.mysq ...

  10. 使用IntelliJ IDEA开发SpringMVC网站(二)开发环境

    访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo 文章已针对IDEA 2016做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源 ...