最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 實(shí)現(xiàn)將List平均分成若干個(gè)集合

 更新時(shí)間:2020年08月18日 09:11:19   作者:after95  
這篇文章主要介紹了Java 實(shí)現(xiàn)將List平均分成若干個(gè)集合,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.初衷是由于調(diào)用銀行接口的批量處理接口時(shí),每次最多只能處理500條數(shù)據(jù),但是當(dāng)數(shù)據(jù)總數(shù)為510條時(shí)。我又不想第一次調(diào)用處理500條,第二次調(diào)用處理10條數(shù)據(jù),我想要的是每次處理255條數(shù)據(jù)。

下面展示的是我的處理方法

2.寫了一個(gè)簡單的ListUtils:

package com.example.springboottest.common.util;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
import com.google.common.collect.Lists;
/**
 * List 工具類
 * @author Neo 
 * @date 2018年4月16日13:13:37
 */
public class ListUtils {
 
  /**
   * 將一個(gè)List均分成n個(gè)list,主要通過偏移量來實(shí)現(xiàn)的
   *
   * @param source 源集合
   * @param limit 最大值
   * @return
   */
  public static <T> List<List<T>> averageAssign(List<T> source, int limit) {
    if (null == source || source.isEmpty()) {
      return Collections.emptyList();
    }
    List<List<T>> result = new ArrayList<>();
    int listCount = (source.size() - 1) / limit + 1;
    int remaider = source.size() % listCount; // (先計(jì)算出余數(shù))
    int number = source.size() / listCount; // 然后是商
    int offset = 0;// 偏移量
    for (int i = 0; i < listCount; i++) {
      List<T> value;
      if (remaider > 0) {
        value = source.subList(i * number + offset, (i + 1) * number + offset + 1);
        remaider--;
        offset++;
      } else {
        value = source.subList(i * number + offset, (i + 1) * number + offset);
      }
      result.add(value);
    }
    return result;
  }
  public static void main(String[] args) {
    List list = new ArrayList();
    for (int i = 0; i < 65; i++) {
      list.add(i);
    }
    List<List> result = averageAssign(list, 15);
    result.forEach(l -> {
      l.forEach(i ->
          System.out.print(i + "\t")
      );
      System.out.println();
    });
    System.out.println("====================================================");
    result = averageAssign(list, 20);
    result.forEach(l -> {
      l.forEach(i ->
          System.out.print(i + "\t")
      );
      System.out.println();
    });
 
    System.out.println("====================================================");
    // Guava 實(shí)現(xiàn)不平均分組
    result = Lists.partition(list ,100);
        result.forEach(l -> {
      l.forEach(i ->
          System.out.print(i + "\t")
      );
      System.out.println();
    });
  }
}

3.展示一下測試結(jié)果:

補(bǔ)充知識:Java8 Lambda 分割List

我就廢話不多說了,大家還是直接看代碼吧~

/**
 * @author caishen
 * @version 1.0
 * @className CollectionUtils
 * @date 2019/5/23 11:54
 * 自分で書いたコードの各行を擔(dān)當(dāng)する
 * @dis 切割list工具類
 **/
public class CollectionUtils {

  public static <T> List<List<T>> divide(List<T>origin , int size){
    if(Assert.isEmpty(origin)){
      return Collections.emptyList();
    }

    int block = (origin.size() + size -1) / size;
    return IntStream.range(0,block).
        boxed().map(i->{
          int start = i*size;
          int end = Math.min(start + size,origin.size());
          return origin.subList(start,end);
    }).collect(Collectors.toList());
  }

  public static void main(String[] args) {
    System.out.println(divide(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10), 3));
  }
}

以上這篇Java 實(shí)現(xiàn)將List平均分成若干個(gè)集合就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA設(shè)置字體隨鼠標(biāo)滾動(dòng)放大縮小的實(shí)現(xiàn)

    IDEA設(shè)置字體隨鼠標(biāo)滾動(dòng)放大縮小的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA設(shè)置字體隨鼠標(biāo)滾動(dòng)放大縮小的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 解決shiro 定時(shí)監(jiān)聽器不生效的問題 onExpiration不調(diào)用問題

    解決shiro 定時(shí)監(jiān)聽器不生效的問題 onExpiration不調(diào)用問題

    這篇文章主要介紹了解決shiro 定時(shí)監(jiān)聽器不生效的問題 onExpiration不調(diào)用問題。具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java實(shí)現(xiàn)獲取客戶端真實(shí)IP方法小結(jié)

    Java實(shí)現(xiàn)獲取客戶端真實(shí)IP方法小結(jié)

    本文給大家匯總介紹了2種使用java實(shí)現(xiàn)獲取客戶端真實(shí)IP的方法,主要用于獲取使用了代理訪問的來訪者的IP,有需要的小伙伴可以參考下。
    2016-03-03
  • 一文徹底弄懂零拷貝原理以及java實(shí)現(xiàn)

    一文徹底弄懂零拷貝原理以及java實(shí)現(xiàn)

    零拷貝(英語: Zero-copy) 技術(shù)是指計(jì)算機(jī)執(zhí)行操作時(shí),CPU不需要先將數(shù)據(jù)從某處內(nèi)存復(fù)制到另一個(gè)特定區(qū)域,下面這篇文章主要給大家介紹了關(guān)于零拷貝原理以及java實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • Java中的Runnable,Callable,F(xiàn)uture,F(xiàn)utureTask的比較

    Java中的Runnable,Callable,F(xiàn)uture,F(xiàn)utureTask的比較

    這篇文章主要介紹了Java中的Runnable,Callable,F(xiàn)uture,F(xiàn)utureTask的比較的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Java數(shù)據(jù)存儲(chǔ)的“雙子星”對決(Map和Set的區(qū)別)

    Java數(shù)據(jù)存儲(chǔ)的“雙子星”對決(Map和Set的區(qū)別)

    文章主要介紹了Java中Map和Set兩種數(shù)據(jù)結(jié)構(gòu)的定義、實(shí)現(xiàn)、方法及應(yīng)用場景,Map用于存儲(chǔ)鍵值對,鍵唯一,值可重復(fù);Set用于存儲(chǔ)唯一元素,無序,兩者都提供了豐富的操作方法,如添加、刪除、查找等,感興趣的朋友一起看看吧
    2025-02-02
  • SpringBoot多環(huán)境配置教程詳解

    SpringBoot多環(huán)境配置教程詳解

    當(dāng)開發(fā)真實(shí)的項(xiàng)目時(shí),可能會(huì)遇到不同的環(huán)境,不同的環(huán)境所需要的配置內(nèi)容也會(huì)不盡相同,所以,掌握多環(huán)境配置還是非常有必要的。本文為大家準(zhǔn)備了SpringBoot多環(huán)境配置教程,需要的可以參考下
    2022-06-06
  • 自定義application.yml配置項(xiàng)方式

    自定義application.yml配置項(xiàng)方式

    這篇文章主要介紹了自定義application.yml配置項(xiàng)方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Java使用Servlet生成驗(yàn)證碼圖片

    Java使用Servlet生成驗(yàn)證碼圖片

    這篇文章主要為大家詳細(xì)介紹了Java使用Servlet生成驗(yàn)證碼圖片,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SSM框架+Plupload實(shí)現(xiàn)分塊上傳大文件示例

    SSM框架+Plupload實(shí)現(xiàn)分塊上傳大文件示例

    這篇文章主要介紹了SSM框架+Plupload實(shí)現(xiàn)分塊上傳示例(Spring+SpringMVC+MyBatis+Plupload),將用戶選中的文件(可多個(gè))分隔成一個(gè)個(gè)小塊,依次向服務(wù)器上傳,有興趣的可以了解一下。
    2017-03-03

最新評論

乌拉特中旗| 温宿县| 宾川县| 时尚| 武宣县| 井冈山市| 克什克腾旗| 天津市| 长沙市| 青河县| 江西省| 南华县| 衡水市| 繁昌县| 寿宁县| 常山县| 十堰市| 彝良县| 尉犁县| 萍乡市| 家居| 逊克县| 黄冈市| 仁化县| 白玉县| 重庆市| 营山县| 哈密市| 黔东| 尼勒克县| 三门县| 北宁市| 新闻| 镇坪县| 湘西| 西畴县| 龙里县| 湘潭市| 积石山| 句容市| 襄汾县|