Java把list分成多個(gè)list的方法示例
背景
開發(fā)中,有時(shí)候我么需要將一個(gè)list集合分割成多個(gè)小的list集合來處理,例如:將拆分的小集合利用多線程來異步處理,以此來提高效率。下面將對(duì)示例集合進(jìn)行拆分:
第一種:等量拆分
private List<List<String>> partition(List<String> originalList, int size) {
List<List<String>> partition = new ArrayList<>();
int totalSize = originalList.size();
// 計(jì)算每個(gè)集合的大小,向上取整
int groupSize = (totalSize / size) + 1;
for (int i = 0; i < size; i++) {
int start = i * groupSize;
// 防止數(shù)組越界
int end = Math.min(start + groupSize, totalSize);
partition.add(new ArrayList<>(originalList.subList(start, end)));
}
return partition;
}
第二種:指定數(shù)量進(jìn)行拆分
導(dǎo)入google的guava工具包
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
private List<List<String>> partition(List<String> originalList) {
// 指定數(shù)量 -> 每1000個(gè)拆分成一個(gè)小集合
List<List<String>> partition = Lists.partition(originalList, 1000);
return partition;
}
第三種:根據(jù)條件進(jìn)行拆分
private List<List<Integer>> partition() {
List<Integer> numbers = Arrays.asList(10, 20, 30, 40, 50, 60, 70, 80, 90);
List<List<Integer>> groups = new ArrayList<>();
groups.add(new ArrayList<>()); // 小于等于50
groups.add(new ArrayList<>()); // 大于50
for (Integer number : numbers) {
if (number <= 50) {
groups.get(0).add(number);
} else {
groups.get(1).add(number);
}
}
return groups;
}總結(jié)
到此這篇關(guān)于Java把list分成多個(gè)list的文章就介紹到這了,更多相關(guān)Java把list分成多個(gè)list內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中的強(qiáng)引用,軟引用,弱引用,虛引用的作用介紹
這篇文章主要介紹了Java中的強(qiáng)引用,軟引用,弱引用,虛引用的作用,下文內(nèi)容具有一定的知識(shí)參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-02-02
Java實(shí)現(xiàn)域名解析的示例詳解(附帶源碼)
這篇文章將從理論到實(shí)踐和從代碼到測(cè)試,全方位地講解如何利用?Java?實(shí)現(xiàn)一個(gè)簡(jiǎn)單的域名解析器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-03-03
淺析Java中ConcurrentHashMap的存儲(chǔ)流程
ConcurrentHashMap技術(shù)在互聯(lián)網(wǎng)技術(shù)使用如此廣泛,幾乎所有的后端技術(shù)面試官都要在ConcurrentHashMap技術(shù)的使用和原理方面對(duì)小伙伴們進(jìn)行360°的刁難,本文詳細(xì)給大家介紹一下ConcurrentHashMap的存儲(chǔ)流程,需要的朋友可以參考下2023-05-05
SpringBoot2.3新特性優(yōu)雅停機(jī)詳解
這篇文章主要介紹了SpringBoot2.3新特性優(yōu)雅停機(jī)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Mybatis中SqlMapper配置的擴(kuò)展與應(yīng)用詳細(xì)介紹(1)
這篇文章主要介紹了Mybatis中SqlMapper配置的擴(kuò)展與應(yīng)用(1)的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
關(guān)于Spring Boot對(duì)jdbc的支持問題
這篇文章主要介紹了關(guān)于Spring Boot對(duì)jdbc的支持問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04

