欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中實現(xiàn)List分隔成子List詳解

 更新時間:2022年01月10日 11:13:30   作者:新猿一馬  
大家好,本篇文章主要講的是Java中實現(xiàn)List分隔成子List詳解,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下

前言

在工作中經(jīng)常遇到需要將數(shù)組分割成多個子數(shù)組,然后進(jìn)行批量處理的需求。那有沒有比較優(yōu)雅的實現(xiàn)呢?

經(jīng)過多次實踐,總結(jié)出 ListUtils.partition 和 Lists.partition 兩種較好實現(xiàn) 。下面對這兩種實現(xiàn)分別進(jìn)行說明。

一 ListUtils.partition 方法

1.1 引入依賴

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

1.2 代碼演示

public static void main(String[] args) {
    //初始化數(shù)組
    List<Integer> parList = new ArrayList<>();
    IntStream.range(0, 30).forEach(parList::add);
 
    //分割成子數(shù)組
    List<List<Integer>> subList = ListUtils.partition(parList, 10);
 
    //遍歷子數(shù)組
    subList.forEach(list -> {
        System.out.println(String.format("subList size:%s", list.size()));
        System.out.println(String.format("list:%s", list.toString()));
    });
}

1.3 輸出結(jié)果

二  Lists.partition 方法

2.1 引入依賴

<dependency>
	<groupId>com.google.guava</groupId>
	<artifactId>guava</artifactId>
	<version>29.0-jre</version>
</dependency>

2.2 代碼演示

public static void main(String[] args) {
    //初始化數(shù)組
    List<Integer> parList = new ArrayList<>();
    IntStream.range(0, 30).forEach(parList::add);
 
    //分割成子數(shù)組
    List<List<Integer>> subList = Lists.partition(parList, 10);
 
    //遍歷子數(shù)組
    subList.forEach(list -> {
        System.out.println(String.format("subList size:%s", list.size()));
        System.out.println(String.format("list:%s", list.toString()));
    });
}

2.3 輸出結(jié)果

三 源碼分析

3.1 ListUtils.partition 源碼分析

最終 ListUtils.partition 調(diào)用 ListUtils.Partition 方法來處理。

ListUtils.Partition 源碼如下:

Partition 類作為 ListUtils 靜態(tài)內(nèi)部類繼承 AbstractList 類。重寫了 get 和 size方法。

3.2 Lists.partition 源碼分析

Lists.partition 方法最終會調(diào)用 new Partition<>(list, size)。

Partition 類源碼如下:

Partition 類作為 Lists 靜態(tài)內(nèi)部類繼承 AbstractList 類。重寫了 get 、 size、isEmpty 方法。

四 性能對比

由于Lists.partition和ListUtils.partition底層實現(xiàn)都是通過Partition類來實現(xiàn),性能差不多。

總結(jié)

到此這篇關(guān)于Java中實現(xiàn)List分隔成子List詳解的文章就介紹到這了,更多相關(guān)Java List分隔成子List內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java Swing中的表格(JTable)和樹(JTree)組件使用實例

    Java Swing中的表格(JTable)和樹(JTree)組件使用實例

    這篇文章主要介紹了Java Swing中的表格(JTable)和樹(JTree)組件使用實例,本文同時講解了表格和樹的基本概念、常用方法、代碼實例,需要的朋友可以參考下
    2014-10-10
  • JDK動態(tài)代理詳細(xì)解析

    JDK動態(tài)代理詳細(xì)解析

    這篇文章主要介紹了JDK動態(tài)代理詳細(xì)解析,在Java的動態(tài)代理機制中,有兩個重要的類和接口,一個是InvoInvocationHandler(接口)、Proxy(類),這一個類和接口是我們動態(tài)代理所必須用到的,需要的朋友可以參考下
    2023-11-11
  • MyBatis多表連接查詢的實例教程

    MyBatis多表連接查詢的實例教程

    這篇文章主要給大家介紹了關(guān)于MyBatis多表連接查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Java mybatis-plus詳解

    Java mybatis-plus詳解

    MyBatis-Plus是一個MyBatis的增強工具,在MyBatis的基礎(chǔ)上只做增強不做修改,為簡化開發(fā)、提高效率而生,本文給大家詳細(xì)講解一下MyBatis-Plus,需要的朋友參考下吧
    2021-09-09
  • Spring學(xué)習(xí)之開發(fā)環(huán)境搭建的詳細(xì)步驟

    Spring學(xué)習(xí)之開發(fā)環(huán)境搭建的詳細(xì)步驟

    本篇文章主要介紹了Spring學(xué)習(xí)之開發(fā)環(huán)境搭建的詳細(xì)步驟,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • java將圖片分割為幾個部分示例

    java將圖片分割為幾個部分示例

    這篇文章主要介紹了java將圖片分割為幾個部分示例,需要的朋友可以參考下
    2014-04-04
  • Java 抽象類與接口的對比

    Java 抽象類與接口的對比

    這篇文章主要介紹了Java 抽象類與接口的對比,幫助大家更好的理解和學(xué)習(xí)Java,感興趣的朋友可以了解下
    2020-08-08
  • 詳談異步log4j2中的location信息打印問題

    詳談異步log4j2中的location信息打印問題

    這篇文章主要介紹了詳談異步log4j2中的location信息打印問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java多線程yield心得分享

    Java多線程yield心得分享

    前幾天復(fù)習(xí)了一下多線程,發(fā)現(xiàn)有許多網(wǎng)上講的都很抽象,所以,自己把網(wǎng)上的一些案例總結(jié)了一下
    2013-12-12
  • Java?Stream流的常見生成和操作方法總結(jié)

    Java?Stream流的常見生成和操作方法總結(jié)

    從Java1.8開始提出了Stream流的概念,本文將通過示例為大家詳細(xì)講解一下Stream流的常見生成和操作方法,感興趣的小伙伴可以了解一下
    2022-09-09

最新評論