首页 > 其他分享 >List 按照指定大小分片的几种方式

List 按照指定大小分片的几种方式

时间:2024-07-08 14:08:21浏览次数:14  
标签:11 List list subList Lists 几种 分片

如果有一个list<string> 里面可能有1000份或者更多数据,如果需要进行入库等操作,需要拆分成指定大小每份进行处理,这种需求很常见,那么应该怎么做呢?

首先我们需要将 List<String>  转为多份后 进行逐个处理,  处理批量事务注意事务哦

 

那么怎么将list转为多份呢?  下面介绍2中方式

 

1:自己写一个方法处理

import com.google.common.collect.Lists;

//自定义分片方法
private static List<List<String>> subList(List<String> list, int batchSize){
        List<List<String>> subList = Lists.newArrayList();
        for (int i = 0; i < list.size(); i += batchSize) {
            int end = i + batchSize;
            if (end > list.size()) {
                end = list.size();
            }
            subList.add(list.subList(i, end));
        }
        return subList;
    }

//测试方法
public static void main(String[] args) {
        //准备一个list 11个值
        List<String> list = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11");

        //每3个分片调用上面的方法
        List<List<String>> lists = subList(list, 3);
        System.out.println(lists);
    }

//运行后的结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

测试:

2:使用google包

import com.google.common.collect.Lists;

public static void main(String[] args) {
        //准备一个list 11个值
        List<String> list = Lists.newArrayList("1", "2", "3", "4", "5", "6", "7","8", "9", "10", "11");

        //每3个分片调用Lists.partition的方法
        List<List<String>> partition = Lists.partition(list, 3);
        System.out.println(partition);
    }

//运行结果:
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]]

 

 

可以看到,两种方法都可以实现将一个list 分割成多个list    这里推荐使用第二种,方便简单, 如果有自定义的需求再将第一个方法改造

关于list的分割的分享就到这里了  感谢~

标签:11,List,list,subList,Lists,几种,分片
From: https://www.cnblogs.com/loveCrane/p/18286260

相关文章

  • 分片集群平衡器Balancer
    分片集群平衡器 MongoDB平衡器是一个后台进程,用于监控每个分片集合中每个分片的数据量。当给定分片上的分片集合的数据量达到特定的 迁移阈值时,平衡器会尝试在分片之间自动迁移数据,并在尊重区域的情况下使每个分片的数据量达到均衡。默认情况下,平衡器进程始终处于启用状态。......
  • odoo 一个仓库有几种stock_location: stock/input/output/quality/packing? 这几个和
    在Odoo中,仓库管理包含多个stock.location类型,每种类型在仓库操作中扮演不同的角色。常见的仓库位置类型包括stock,input,output,quality,和packing。以下是这些位置类型的详细说明以及它们与出库、入库和库存的关系。常见的stock.location类型:Stock:描述:主库存位......
  • C#开发单实例应用程序的几种方式
    C#默认的WinForm模板是不支持设置单实例的,也没有隔壁大哥VB.NET那样有个“生成单个实例应用程序”的勾选选项(VB某些时候要比C#更方便),实现单实例可以有多种方法:检测同名进程:Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName),如果集合的Length>1那就表明已......
  • 【后端面试题】【中间件】【NoSQL】MongoDB提高可用性的方案(主从结构、仲裁节点、分片
    主从结构MongoDB的高可用和别的中间件的高可用方案基本类似。比如在MySQL里,接触了分库分表和主从同步;在Redis里,Redis也有主从结构;在Kafka里,分区也是有主从结构的。所以先介绍启用了主从同步我们的系统有一个关键组件-MongoDB,但是在最开始的时候,MongoDB没有启用主从,是......
  • python数据容器(一)列表list
    思维导图代码1.数据容器入门2.数据容器:list(列表)name_list=['itheima','itcast','python']print(name_list)print(type(name_list))运行结果: name_list=['itheima',666,True]print(name_list)print(type(name_list))运行结果: name_l......
  • python: list
     #去重A=['geovindu','刘杰','江山','河水','刘杰','geovindu','张三','李五']B=[]foriinA:ifinotinB:B.append(i)print(B)C=set(A)......
  • HashTable,ArrayList,queue等常用方法
    HashTable,ArrayList,queue等常用方法HashMap是Java中非常常用的集合类,它存储键值对,并提供了一系列方便的方法来操作这些数据。以下是一些HashMap的常用方法:1.添加和获取元素:put(key,value):将指定的键值对添加到HashMap中。如果键已存在,则更新对应的值。get(ke......
  • C++list的模拟实现
    链表节点 template<classT> structListNode { ListNode(constT&data=T()) : _data(data) { } ListNode<T>*_prev=nullptr; ListNode<T>*_next=nullptr; T_data; };因为之后要访问这个类的成员变量函数和结构体,所以在这里将class直接改为struct......
  • 3-List
    ListList继承于CollectionList常用方法/*List接口中常用方法:增加:add(intindex,Eelement)删除:remove(intindex)remove(Objecto)修改:set(intindex,Eelement)查看:get(intindex)判断:......
  • java List集合排序方式
    javaList集合排序方式1.使用直接上代码packagecom.demo;importcn.hutool.core.date.DateTime;importlombok.AllArgsConstructor;importlombok.Data;importjava.util.*;importjava.util.stream.Collectors;publicclassDemoCollectionsSortMain{public......