91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JAVA工具如何將一個list均分成n個list

發布時間:2021-10-23 17:42:38 來源:億速云 閱讀:593 作者:柒染 欄目:大數據

這篇文章將為大家詳細講解有關JAVA工具如何將一個list均分成n個list,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

編程中的需求

分批處理一塊大數據: 例如,從(Excel ,txt ,數據庫 )中一行一行的讀數據,最終讀了1W+數據,然后對這1W+數據又要進行業務處理,一條一條的遍歷太慢了。可以把這個大的list拆成n個,然后用n個線程去跑,這樣效率就會快很多。下述代碼就是其中用到關于的一個工具類: 把一個List均分成n個小的list

思路詳解

  • 入參:一個大的list

  • 出參:n個小的list

  • 思路:像小學做除法一樣。 10/3=3余1. 10條數據,分成3個list,那每個list分3個還多1個,那只有前面的都多分1個,第一個list分3個然后加1個余數等于4個。第2個list分3個,然后最后一個list分3個。代碼如下,可以直接拷貝運行

解決方案

/**
    * 將一個list均分成n個list
    * @param source
    * @return
    */
   public static <T> List <List<T>> averageAssign(List<T>source,intn){
       List <List<T>> result=new ArrayList<List<T>>();
       int remainder=source.size()%n;  //先計算出余數
       int number=source.size()/n;  //然后是商
       int offset=0;//偏移量(用以標識加的余數)
       for(int i=0;i<n;i++){
           List<T>value;
           if(remainder>0){
               value=source.subList(i*number+offset, (i+1)*number+offset+1);
               remainder--;
               offset++;
          }else{
               value=source.subList(i*number+offset, (i+1)*number+offset);
          }
           result.add(value);
      }
       return result;
  }

關于JAVA工具如何將一個list均分成n個list就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

比如县| 台安县| 苍南县| 锡林郭勒盟| 灵山县| 资阳市| 天津市| 崇礼县| 日照市| 武山县| 永修县| 盈江县| 舒兰市| 山东省| 海伦市| 巧家县| 娱乐| 玉屏| 鹿邑县| 通海县| 布拖县| 五寨县| 四子王旗| 石狮市| 上饶县| 容城县| 台湾省| 子长县| 龙里县| 通州区| 汕尾市| 北宁市| 平罗县| 和田市| 曲阜市| 沁阳市| 娱乐| 邵武市| 久治县| 米脂县| 瑞金市|