java中對(duì)List分段操作的實(shí)例
java中對(duì)List分段操作的實(shí)例
問(wèn)題:假設(shè)A系統(tǒng)查詢出來(lái)一個(gè)很大很大的List,現(xiàn)在B系統(tǒng)想要得到這個(gè)List來(lái)導(dǎo)出報(bào)表,但是B系統(tǒng)部署環(huán)境條件有限,內(nèi)存容不下這么大一個(gè)List,這時(shí)候我們就需要把List切分,然后再一個(gè)一個(gè)導(dǎo)出了。
如果按照傳統(tǒng)方式,可能會(huì)比較繁瑣,我們可以運(yùn)用List里面的subList方法來(lái)實(shí)現(xiàn),代碼如下:
import java.util.ArrayList;
import java.util.List;
public class listTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aaa");//index_0
list.add("bbb");//index_1
list.add("ccc");//index_2
list.add("ddd");//index_3
list.add("eee");//index_4
list.add("fff");//index_5
list.add("ggg");//index_6
int flag = 3;//每次取的數(shù)據(jù)
int size = list.size();
int temp = size / flag + 1;
boolean special = size % flag == 0;
List<String> cutList = null;
for (int i = 0; i < temp; i++) {
if (i == temp - 1) {
if (special) {
break;
}
cutList = list.subList(flag * i, size);
} else {
cutList = list.subList(flag * i, flag * (i + 1));
}
System.out.println("第" + (i + 1) + "組:" + cutList.toString());
}
}
}
測(cè)試:
1、flag = 1
第1組:[aaa] 第2組:[bbb] 第3組:[ccc] 第4組:[ddd] 第5組:[eee] 第6組:[fff] 第7組:[ggg]
2、flag = 2
第1組:[aaa, bbb] 第2組:[ccc, ddd] 第3組:[eee, fff] 第4組:[ggg]
3、flag = 10
第1組:[aaa, bbb, ccc, ddd, eee, fff, ggg]
如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望通過(guò)本文能幫助到大家,謝謝大家對(duì)本站的支持!
- Java如何獲取指定目錄文件列表
- Java Swing JList列表框的實(shí)現(xiàn)
- Java8 Comparator: 列表排序的深入講解
- JAVA JDK8 List獲取屬性列表
- Java仿淘寶首頁(yè)分類列表功能的示例代碼
- java中List對(duì)象列表實(shí)現(xiàn)去重或取出及排序的方法
- 在JSTL EL中處理java.util.Map,及嵌套List的情況
- java ConcurrentHashMap鎖分段技術(shù)及原理詳解
- java實(shí)現(xiàn)分段讀取文件并通過(guò)HTTP上傳的方法
- Java util.List如何實(shí)現(xiàn)列表分段處理
相關(guān)文章
SpringBoot利用觀察者模式實(shí)現(xiàn)聯(lián)動(dòng)更新機(jī)制
觀察者模式(Observer Pattern)是一種軟件設(shè)計(jì)模式,在許多應(yīng)用系統(tǒng)中,我們經(jīng)常需要處理多個(gè)表之間的關(guān)聯(lián)更新問(wèn)題,本文將通過(guò)一個(gè)具體的案例,介紹如何在Spring Boot項(xiàng)目中利用觀察者模式來(lái)優(yōu)雅地解決這一需求,需要的朋友可以參考下2024-07-07
LambdaQueryWrapper與QueryWrapper的使用方式
這篇文章主要介紹了LambdaQueryWrapper與QueryWrapper的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
Java中如何將list轉(zhuǎn)為樹(shù)形結(jié)構(gòu)
這篇文章主要介紹了Java中如何將list轉(zhuǎn)為樹(shù)形結(jié)構(gòu),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
MyBatis在注解上使用動(dòng)態(tài)SQL方式(@select使用if)
這篇文章主要介紹了MyBatis在注解上使用動(dòng)態(tài)SQL方式(@select使用if),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
深入淺析springsecurity入門登錄授權(quán)
SpringSecurity為我們提供了基于注解的權(quán)限控制方案,這也是我們項(xiàng)目中主要采用的方式,我們可以使用注解去指定訪問(wèn)對(duì)應(yīng)的資源所需的權(quán)限,這篇文章主要介紹了springsecurity入門登錄授權(quán),需要的朋友可以參考下2024-05-05
使用Java進(jìn)行FreeMarker的web模板開(kāi)發(fā)的基礎(chǔ)教程
這篇文章主要介紹了使用Java進(jìn)行FreeMarker模板引擎開(kāi)發(fā)的基礎(chǔ)教程,文中針對(duì)FreeMarker的網(wǎng)頁(yè)標(biāo)簽用法給出了一些例子,需要的朋友可以參考下2016-03-03
SpringBoot項(xiàng)目中連接Gauss數(shù)據(jù)庫(kù)
本文主要介紹了SpringBoot項(xiàng)目中連接Gauss數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06

