java 对ArrayList进行分页实例代码
2017-02-17 14:11
573 查看
java 对ArrayList进行分页
概述
系统与系统之间的交互,通常是使用接口的形式。假设B系统提供了一个批量的查询接口,限制每次只能查询50条数据,而我们实际需要查询500条数据,这个时候可以对这500条数据做分批操作,分10次调用B系统的批量接口。
如果B系统的查询接口是使用List作为入参,那么要实现分批调用的话,可以利用ArrayList的subList方法来处理。
代码
sublist方法的定义:
List<E> subList(int fromIndex, int toIndex);
只需要准确的算出fromIndex和 toIndex即可。
数据准备
public class TestArrayList { public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L}); } }
分页算法
import java.util.Arrays; import java.util.List; public class TestArrayList { private static final Integer PAGE_SIZE = 3; public static void main(String[] args) { List<Long> datas = Arrays.asList(new Long [] {1L,2L,3L,4L,5L,6L,7L,8L}); //总记录数 Integer totalCount = datas.size(); //分多少次处理 Integer requestCount = totalCount / PAGE_SIZE; for (int i = 0; i <= requestCount; i++) { Integer fromIndex = i * PAGE_SIZE; //如果总数少于PAGE_SIZE,为了防止数组越界,toIndex直接使用totalCount即可 int toIndex = Math.min(totalCount, (i + 1) * PAGE_SIZE); List<Long> subList = datas.subList(fromIndex, toIndex); System.out.println(subList); //总数不到一页或者刚好等于一页的时候,只需要处理一次就可以退出for循环了 if (toIndex == totalCount) { break; } } } }
测试场景
1、总数不足一页
2、总数刚好等于一页
3、总数多余一页
上面三个case都可以正常通过。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
相关文章推荐
- 使用Java进行SNMP编程-SNMP4J-SNMPv1/v2-代码实例
- 使用Java进行SNMP编程-SNMP4J-SNMPv1/v2-代码实例
- Java分页代码实例
- 使用Java进行SNMP编程-SNMP4J-SNMPv1/v2-代码实例
- JAVA分页代码实例
- 利用java在服务器和客服端建立连接,进行通讯(代码实例)
- java编程使用EasyUI进行分页查询前后端代码编写
- java的Map集合中按value值进行排序输出的实例代码
- 使用Java进行SNMP编程-SNMP4J-SNMPv3-代码实例
- 使用Java进行SNMP编程-SNMP4J-SNMPv3-代码实例
- java 对文件夹目录进行深度遍历实例代码
- Java中CountDownLatch进行多线程同步详解及实例代码
- java中对list分页并显示数据到页面实例代码
- 对arraylist中元素进行排序实例代码
- Java mysql数据库并进行内容查询实例代码
- 使用Java进行SNMP编程-SNMP4J-SNMPv1/v2-代码实例
- 利用java在服务器和客服端建立连接,进行通讯(代码实例)
- JAVA分页代码实例
- java使用DOM对XML文档进行增删改查操作实例代码
- 使用Java进行SNMP编程-SNMP4J-SNMPv1/v2-代码实例