記事一覧はこちら

Javaでリストを指定個数で区切ったリストのリストにする1メソッド

車輪の再発明もいいとこだけど、コピペで使える1メソッドのを作った。個人的にバンバン使っていきたいと思う。 引数がlistではなくcollectionだから、ArrayListだけじゃなくてSetも使える。個人的にベスト

    private static <T> List<List<T>> split(Collection<T> splitTarget, int size) {
        List<List<T>> result = new ArrayList<List<T>>();
        Iterator<T> it = splitTarget.iterator();
        while(it.hasNext()){
            int session=0;
            List<T> add = new ArrayList<>(size);
            while(it.hasNext() && session<size){
                add.add(it.next());
                session++;
            }
            result.add(add);
        }
        return result;
    }

subListを使うと→の罠があるから別の方法で。List#subListの罠 - プログラマ的京都生活