为了使用并发计算,有时候需要对list做拆分。而java中默认的subList方法满足不了这种需求,那就自己动手写一个吧。

package demo18;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.List;

import mon.collect.Lists;

/**

* 对List进行拆分,用于分布式计算

*

* @author mengfeiyang

*

*/

public class ListSplit {

List> eList = new ArrayList>();

List gList;

public List> SplitList(List sList, int num) {

int size = (sList.size()) / num;

int size2 = (sList.size()) % num;

int j = 0;

int xx = 0;

for (int i = 0; i < num; i++) {

gList = new ArrayList();

for (j = xx; j < (size + xx); j++) {

gList.add(sList.get(j));

}

xx = j;

eList.add(gList);

}

if (size2 != 0) {

gList = new ArrayList();

for (int y = 1; y < size2 + 1; y++) {

gList.add(sList.get(sList.size() - y));

}

eList.add(gList);

}

return eList;

}

public static void main(String[] args) {

//构造一个待拆分的list

List ll = Lists.newArrayList("a","b","c","d","e");

ListSplit ls = new ListSplit();

//把list平均拆分成2个,若不能平均拆分,多出的一个会单独保存到一个list中。

List> li = ls.SplitList(ll, 2);

for(List l : li){

System.out.println(Arrays.toString(l.toArray()));//打印出被拆分后的每个list中的值

}

}

}

输出:

java拆分list_Java平均拆分list相关推荐

  1. 代码示例:使用Java以编程方式拆分PDF文件

    有时需要将一个PDF拆分为多个PDF文件时,可能会有多种情况.例如,可能必须分割包含发票/收据的PDF的每一页,并将它们另存为单独的文件.另一方面,可能要从PDF文件中拆分页面的特定集合.为了解决上述 ...

  2. 简单使用java程序进行数值拆分~

    首先先附上源码: package com.wy.csdn;import com.sun.deploy.security.SandboxSecurity;import java.util.Scanner ...

  3. Mycat实现垂直拆分与水平拆分

    垂直拆分(分库) 一个数据库由很多表的构成,每个表对应着不同的业务,垂直切分是指按照业务将表进行分类, 分布到不同 的数据库上面,这样也就将数据或者说压力分担到不同的库上面,如下图: 系统被切分成:用 ...

  4. 数据切分 垂直切分、垂直拆分与水平拆分的优缺点

    数据切分 垂直切分 关于数据库的水平切分和垂直切分的一些概念垂直拆分垂直拆分就是要把表按模块划分到不同数据库表中(当然原则还是不破坏第三范式),这种拆分在大型网站的演变过程中是很常见的.当一个网站还在 ...

  5. Mysql 水平拆分和垂直拆分

    2019独角兽企业重金招聘Python工程师标准>>> 1,水平分割: 例:QQ的登录表.假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这100亿中查找,会 ...

  6. MYSQL水平拆分与垂直拆分

    目前很多互联网系统都存在单表数据量过大的问题,这就降低了查询速度,影响了客户体验.为了提高查询速度,我们可以优化sql语句,优化表结构和索引,不过对那些百万级千万级的数据库表,即便是优化过后,查询速度 ...

  7. 【组合数学】生成函数 ( 正整数拆分 | 重复有序拆分 | 不重复有序拆分 | 重复有序拆分方案数证明 )

    文章目录 一.重复有序拆分 二.不重复有序拆分 1.无序拆分基本模型 2.全排列 三.重复有序拆分方案数证明 参考博客 : 按照顺序看 [组合数学]生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式 ...

  8. 【组合数学】生成函数 ( 正整数拆分 | 无序 | 有序 | 允许重复 | 不允许重复 | 无序不重复拆分 | 无序重复拆分 )

    文章目录 一.正整数拆分 二.无序拆分 1.无序拆分 不允许重复 2.无序拆分 允许重复 参考博客 : [组合数学]生成函数 简要介绍 ( 生成函数定义 | 牛顿二项式系数 | 常用的生成函数 | 与 ...

  9. mysql 垂直拆分 原因_mysql的水平拆分和垂直拆分 (转)

    http://www.cnblogs.com/sns007/p/5790838.html 1,水平分割: 例:QQ的登录表.假设QQ的用户有100亿,如果只有一张表,每个用户登录的时候数据库都要从这1 ...

最新文章

  1. 从方法到实践!深度解读:企业数据治理到底治什么?怎么治?
  2. Struts 体系结构与工作原理(图)
  3. jquery中Live方法不可用,Jquery中Live方法失效
  4. ECharts - 嵌套环形图
  5. 青海西宁市大通县非洲猪瘟疫区解除封锁
  6. 【Java】NIO中Selector的select方法源码分析
  7. Python爬虫基础(三)urllib2库的高级使用
  8. laravel 验证用户是否登陆显示不同内容
  9. 虚拟空间 配置 服务器,虚拟主机空间可以修改服务器配置吗
  10. ajax ashx 请选择文件,ajax+jquery+ashx如何实现上传文件
  11. 无需共享存储发布高性能的虚拟桌面
  12. 十大算法 — 选择排序法【C语言代码诠释】
  13. OV5640的初始化
  14. C# 地理信息系统GIS开源软件
  15. XP系统常用的登录密码方法破解(一共9种)
  16. 【Web UI自动化测试】Web UI自动化测试之PO篇(全网最全)
  17. 如何使用FindBugs进行安全扫描
  18. 搭建网校平台的具体方法
  19. 项目经验分享:基于昇思MindSpore实现手写汉字识别
  20. 【应届生笔试资料分享一】中国人民银行计算机笔试资料汇总

热门文章

  1. 在Android Studio中将Android工程变为Library使用
  2. Execution failed for task ':app:mergeDebugResources
  3. MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的课堂考勤系统
  5. Mysql Update 流程摘抄
  6. java框架----mybatis的使用(一)
  7. Java笔记(11):Eclipse使用
  8. C#接口的使用场合,接口应用
  9. [SQL SERVER] 优化SQL Server 2000的设置
  10. C语言经典贪心算法之加油站问题(详解)