java List 按指定長度分割

場景: 把一個List集合按指定長度分割成組


1. 手動實現(xiàn) (已經(jīng)自測通過)
   private List<List<String>> splitList(List<String> list , int groupSize){
        int length = list.size();
        // 計算可以分成多少組
        int num = ( length + groupSize - 1 )/groupSize ; // TODO 
        List<List<String>> newList = new ArrayList<>(num);
        for (int i = 0; i < num; i++) {
            // 開始位置
            int fromIndex = i * groupSize;
            // 結(jié)束位置
            int toIndex = (i+1) * groupSize < length ? ( i+1 ) * groupSize : length ;
            newList.add(list.subList(fromIndex,toIndex)) ;
        }
        return  newList ;
    }

*注:TODO 標(biāo)注部分是個小技巧,正常情況下計算能拆分多少組是:
length % groupSize == 0 ? length / groupSize : length / groupSize +1
這里使用 ( length + groupSize - 1 ) / groupSize則減少運算了。

2. 使用guave實現(xiàn)
   import com.google.common.collect.Lists;
   private List<List<String>> splitList(List<String> list , int groupSize){
        return  Lists.partition(list, groupSize); // 使用guava
    }

注:如果要了解其它工具類的實現(xiàn)此功能,可以看最后兩篇引用的文章
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,586評論 19 139
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗。 張土汪:刷leetcod...
    土汪閱讀 12,923評論 0 33
  • 這一年,我風(fēng)聲鶴唳 命運的脈絡(luò)為不明液體切斷 記憶的掌紋被鐘聲出賣 身體不堪重負 倉皇出逃 視線里缺少激流奮進的勇...
    愛亦如詩閱讀 332評論 2 4
  • 這是個很長很長的故事。。。 故事要從2007年說起。 2007年,一切都那么不順利。 兒子三歲了,特別可愛??墒怯?..
    小美人魚0530閱讀 341評論 1 2

友情鏈接更多精彩內(nèi)容