list分段截取方法

 对list 分段截取方法是一个常见的操作,通常用于对list数据批量操作,常见的场景有返回分页展示数据,对大数据进行分批次插入数据库等

package com.hmdp.dto;import org.apache.commons.collections4.ListUtils;
import org.springframework.util.StringUtils;import java.text.ParseException;
import java.util.Arrays;
import java.util.List;/*** @Author: ldj* @Date: 2023/06/19/16:34* @Description: 对list分段截取*/
public class Tr {public static void main(String[] args) throws ParseException {List<String> list = Arrays.asList("a", "b", "c", "d", "e", "f", "g", "h", "i");Tr.subList1(list);Tr.subList2(list);Tr.subList3(list);Tr.subList4(list); //推荐System.out.println(Math.min(3, 2));}public static void subList1(List<String> list) {long beginTime = System.currentTimeMillis();if (StringUtils.isEmpty(list)) {return;}int beginIndex = 0;int subSize = 2;List<String> arrayList = null;while (beginIndex < list.size()) {if (beginIndex + subSize < list.size()) {arrayList = list.subList(beginIndex, beginIndex + subSize);} else {arrayList = list.subList(beginIndex, list.size());}beginIndex += subSize;System.out.println(arrayList);}long endTime = System.currentTimeMillis();System.out.println("subList1 cost time:" + (endTime - beginTime));}//方法2快一丢丢public static void subList2(List<String> list) {long beginTime = System.currentTimeMillis();if (StringUtils.isEmpty(list)) {return;}int beginIndex = 0;int subSize = 2;List<String> arrayList = null;if (list.size() % subSize == 0) {int size = list.size() / subSize;for (int i = 0; i < size; i++) {arrayList = list.subList(beginIndex, beginIndex + subSize);beginIndex = beginIndex + subSize;System.out.println(arrayList);}}if (list.size() % subSize > 0) {int size = list.size() / subSize;for (int i = 0; i < size; i++) {arrayList = list.subList(beginIndex, beginIndex + subSize);beginIndex = beginIndex + subSize;System.out.println(arrayList);}arrayList = list.subList(beginIndex, list.size());System.out.println(arrayList);}long endTime = System.currentTimeMillis();System.out.println("subList2 cost time:" + (endTime - beginTime));}/*** <dependency>* <groupId>org.apache.commons</groupId>* <artifactId>commons-collections4</artifactId>* <version>4.4</version>* </dependency>*/public static void subList3(List<String> list) {long beginTime = System.currentTimeMillis();List<List<String>> partitions = ListUtils.partition(list, 2);partitions.forEach(partition -> {System.out.println(partition);});long endTime = System.currentTimeMillis();System.out.println("subList3 cost time:" + (endTime - beginTime));}public static void subList4(List<String> list) {long beginTime = System.currentTimeMillis();List<String> arrayList = null;int subSize = 2;for (int beginIndex = 0; beginIndex < list.size(); beginIndex += subSize) {int endIndex = Math.min(beginIndex + subSize, list.size());arrayList = list.subList(beginIndex, endIndex);System.out.println(arrayList);}long endTime = System.currentTimeMillis();System.out.println("subList4 cost time:" + (endTime - beginTime));}}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/19715.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle中没有show tables;如何用指令来显示表名,Excel关于VLOOKUP函数的使用。

一、问题&#xff1a;Oracle中没有show tables;如何用指令来显示表名。 解决方案&#xff1a; owner NAPSDEV更换为owner CNAPSIIDB。NAPSDEV是用户名&#xff0c;CNAPSIIDB是数据库名。在这里&#xff0c;我想让它显示的是我在Navicat中的CNAPSIIDB数据库下的所有表的名称。所…

【数据仓库】Windows源码安装DataEase,DataEase二次开发

上文记录了DataEase入门使用指南&#xff0c;本文主要记录Windows下源码安装及二次开发步骤【数据仓库】BI看板DataEase入坑指南_wenchun001的博客-CSDN博客 改动文件 源码 GitHub release 链接: Releases dataease/dataease GitHub SDK 软件环境 后端&#xff1a; JDK …

【云原生】二进制部署k8s集群(中)搭建node节点

连接上文 在上文已经成功部署了etcd分布式数据库、master01节点&#xff0c; 本文将承接上文的内容&#xff0c;继续部署Kubernetes集群中的 worker node 节点和 CNI 网络插件 1. 部署 Worker Node 组件 1.1 work node 组件部署前需了解的节点注册机制 kubelet 采用 TLS Bo…

实操:用Flutter构建一个简单的微信天气预报小程序

​ 微信小程序是一种快速、高效的开发方式&#xff0c;Flutter则是一款强大的跨平台开发框架。结合二者&#xff0c;可以轻松地开发出功能丰富、用户体验良好的微信小程序。 这里将介绍如何使用Flutter开发一个简单的天气预报小程序&#xff0c;并提供相应的代码示例。 1. 准备…

【数学建模】常微分方程

常微分方程 博客园解释 https://www.cnblogs.com/docnan/p/8126460.html https://www.cnblogs.com/hanxi/archive/2011/12/02/2272597.html https://www.cnblogs.com/b0ttle/p/ODEaid.html matlab求解常微分方程 https://www.cnblogs.com/xxfx/p/12460628.html https://www.cn…

青岛大学_王卓老师【数据结构与算法】Week05_01_栈和队列的定义和特点1_学习笔记

本文是个人学习笔记&#xff0c;素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享&#xff0c; 另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权&#xff0c;请留言作删文处理。 课程视频链接&#xff1a; 数据结构与算法基础…

uniapp 小程序 filters 过滤日期

页面效果&#xff1a; <template><view class"order-intro-item"><text class"left-label">日期</text><text class"right-info time-text">{{startClearingTime | formatData}} 至 {{endClearingTime | format…

emacs下相对行号的设置

全局设置 全局开启行号显示&#xff1a;global-display-line-numbers-mode t 并设置 display-line-numbers-type的样式: relative 相对 配置代码如下: (use-package emacs:ensure t:config (setq display-line-numbers-type relative) (global-display-line-numbers-mode t)…

HTML和CSS配合制作一个简单的登录界面

HTML和CSS配合制作一个简单的登录界面 界面HTMLCSS解释语法 界面 HTML <!DOCTYPE html> <html lang"en"> <head><title>篮球世界</title><meta charset"UTF-8"><link type"text/css" rel"styleshe…

SQL-每日一题【595.大的国家】

题目 World 表&#xff1a; 如果一个国家满足下述两个条件之一&#xff0c;则认为该国是 大国 &#xff1a; 面积至少为 300 万平方公里&#xff08;即&#xff0c;3000000 km2&#xff09;&#xff0c;或者人口至少为 2500 万&#xff08;即 25000000&#xff09; 编写一个…

单个电源模块不带电感的直流压降仿真

单个电源模块不带电感的直流压降仿真 前面讲过POWER DC如何对单个电源模块带电感的直流压降仿真,下面介绍如何对单个电源模块不带电感的直流压降仿真,以下图为例

简要介绍 | 心脏机械-电耦合理论:原理、研究现状与未来展望

注1&#xff1a;本文系“简要介绍”系列之一&#xff0c;仅从概念上对心脏机械-电耦合理论进行非常简要的介绍&#xff0c;不适合用于深入和详细的了解。 心脏机械-电耦合理论&#xff1a;原理、研究现状与未来展望 心脏中精密的血流局部调控机制&#xff1a;electro-metabolic…