import java.util.ArrayList;
import java.util.List;
import org.apache.poi.ss.formula.functions.T;
/**
* Project Name:FireWeb
* File Name:TestListSplit.java
* Package Name:
* Date:2017年10月16日下午3:13:01
*
*/
/**
* ClassName:TestListSplit <br/>
* Function: TODO ADD FUNCTION. <br/>
* Reason: TODO ADD REASON. <br/>
* Date: 2017年10月16日 下午3:13:01 <br/>
* @author sql
* @version
* @since JDK 1.8
* @see
*/
public class TestListSplit {
private static List<Integer> createList(int len){
List<Integer> l = new ArrayList<Integer>();
for (int i = 0; i < len; i++) {
l.add(i);
}
return l;
}
/**
* 分割List
* @param list 待分割的list
* @param pageSize 每段list的大小
* @return List<<List<T>>
*/
public static <T> List<List<T>> splitList(List<T> list, int pageSize) {
int listSize = list.size(); //list的大小
int page = (listSize + (pageSize-1))/ pageSize; //页数
List<List<T>> listArray = new ArrayList<List<T>>(); //创建list数组 ,用来保存分割后的list
for(int i=0;i<page;i++) { //按照数组大小遍历
List<T> subList = new ArrayList<T>(); //数组每一位放入一个分割后的list
for(int j=0;j<listSize;j++) { //遍历待分割的list
int pageIndex = ( (j + 1) + (pageSize-1) ) / pageSize; //当前记录的页码(第几页)
if(pageIndex == (i + 1)) { //当前记录的页码等于要放入的页码时
subList.add(list.get(j)); //放入list中的元素到分割后的list(subList)
}
if( (j + 1) == ((j + 1) * pageSize) ) { //当放满一页时退出当前循环
break;
}
}
listArray.add(subList); //将分割后的list放入对应的数组的位中
}
return listArray;
}
public static void main(String[] args) {
List<Integer> l = createList(100000);
System.out.println(l.size());
List<List<Integer>> sl = splitList(l, 500);
System.out.println(sl.size());
for (int i = 0; i < sl.size(); i++) {
List<Integer> subl = sl.get(i);
System.out.print(i + " [" + subl.size()+"]");
for (Integer si : subl) {
System.out.print(" ," + si);
}
System.out.println("\r");
}
// System.out.println(33%10);
}
}
分享到:
相关推荐
Java中将一个List等分成n个List的工具方法 Java中将一个List等分成n个List的工具方法是Java编程中非常有用的技术。以下是该方法的详细介绍和实现。 方法概述 该方法的主要目的是将一个List分成n个小List,每个小...
分页的基本思想是将一个大List分割成多个小List,每个小List代表一页数据。分页通常涉及到两个参数:当前页数(currentPage)和每页显示的条目数(pageSize)。为了实现这个功能,我们可以创建一个名为`...
首先,【标题】“三大修饰符List集合测试”以及【描述】“该文档为java底层核心技术,list引用对象详解,详细介绍了list引用对象的内部机制,缓存的位置以及怎么高效的使用它,提高程序效率”共同提示我们,文档将...
本话题将详细讲解如何使用Java实现回溯法来求解分割回文字符串的问题。 首先,我们需要理解什么是回溯法。回溯法是一种试探性的解决问题的方法,它尝试通过不断地尝试所有可能的解决方案,并在尝试过程中逐步排除不...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
接下来,`SplitList.java` 文件很可能是测试类,用于验证顺序表的各种操作,如创建、添加元素、删除元素、查找元素、分割或合并顺序表等。这些操作在顺序表中都有其特定的实现。例如,添加元素可能涉及数组的扩容,...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
在这个压缩包"自己的Java工具类库 + 主体项目测试.zip"中,包含了名为"dsjava1"的文件。根据命名,我们可以猜测这可能是一个Java源代码文件或者一个包含多个Java源代码文件的目录。"dsjava1"可能是你为数据结构或...
在提供的压缩包"list分页"中,可能包含了实现这种分页逻辑的源代码文件,例如Java类、测试用例或其他支持文件。这些代码可以作为参考,帮助开发者理解如何在自己的项目中实现类似的分页功能,而无需引入外部库或依赖...
`String.split()`方法用于根据给定的分隔符将字符串分割成字符串数组。使用时需要注意分隔符的选择以及对结果数组的处理。 #### 7. 线程池的正确使用 在使用线程池时,需要正确地重写`execute`和`submit`方法,并...
3. **文件和目录操作**:模拟CMD的文件及目录操作,如`cd`(改变当前目录)、`ls`(列出目录内容),需要对Java的`File`类有深入理解,包括`exists()`, `isDirectory()`, `listFiles()`等方法。 4. **系统调用**:...
- `<iterator>` 标签在JSP中用于遍历集合,如List,通常用于显示从后台获取的数据。在处理Excel数据时,通过`<iterator>`标签可以方便地展示内容。 5. **Java基础方法与对象操作**: - 设置和获取属性的方法,如`...
1. **字符串操作**:在JAVA中,`String`类提供了丰富的操作方法,如`split()`用于按特定分隔符分割字符串,`toLowerCase()`和`toUpperCase()`用于转换大小写,`length()`获取字符串长度,以及`charAt(int index)`...
5个目标文件,演示Address EJB的实现 ,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
7.2.4 参数列表(Parameter List) 159 7.2.5 方法体(Method Body) 160 7.2.6 方法串串烧 160 7.3 方法的参数:让汽车加速 161 7.3.1 方法的参数:让汽车可以加速 161 7.3.2 带参数的方法有何不同? 162 ...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
JDK (Java Development Kit) 提供了完整的 Java 开发环境,包括 Java 编译器(javac)、Java 运行环境(JRE)、以及各种开发工具,如 Javadoc(生成文档)和 JUnit(单元测试)。JRE (Java Runtime Environment) 则...
除了在XML布局文件中设置分割线外,还可以通过Java代码动态地设置分割线。这种方式更灵活,可以根据需要改变分割线的样式或高度。 ```java // 获取ListView对象 ListView listView = (ListView) findViewById(R.id....
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...