java 将一个有大量数据的list集合分成指定大小的list集合

Posted 凌晨四点的少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 将一个有大量数据的list集合分成指定大小的list集合相关的知识,希望对你有一定的参考价值。

使用场景: 将一个有大量数据的list集合分成指定大小的list集合

代码:

public class MySubTUtil {
    /**
     * 第一种方法:
     * 将list拆分成多给指定的大小的list
     */
    public static List<List<String>> subList(List<String> target, int size) {
        List<List<String>> listArr = new ArrayList<List<String>>();
        //获取被拆分的数组个数
        int arrSize = target.size()%size==0?target.size()/size:target.size()/size+1;
        for(int i=0;i<arrSize;i++) {
            List<String> sub = new ArrayList<String>();
            //把指定索引数据放入到list中
            for(int j=i*size;j<=size*(i+1)-1;j++) {
                if(j<=target.size()-1) {
                    sub.add(target.get(j));
                }
            }
            listArr.add(sub);
        }
        return listArr;
    }
    
    /**
     * 第二种方法
     * 将list拆分成多给指定的大小的list
     */
    public static List<List<String>> subList2(List<String> target,int num) {
        List<List<String>> listArr = new ArrayList<List<String>>();
        //获取被拆分的数组个数
        if(target.size() > num){
            int number = target.size() / num;
            for (int i = 1; i <=number; i++) {
                List<String> subList = target.subList(num*(i-1), num*i);
                listArr.add(subList);
            }
            List<String> subList = target.subList(num*number, target.size());
            listArr.add(subList);
        }
        return listArr;
    }
    
    public static void main(String[] args) {
         List<String> sub = new ArrayList<String>();
         sub.add("oJkxxw8pYYKdC5HXtoiEImLNIqyk");
         sub.add("oJkxxw6krKGhZIuYHV6rPp4uvLNw");
         sub.add("oJkxxw9As9hHdLnfqRbfDHeF9WAU");
         sub.add("oJkxxw1RNeDaodn6Qgz6FI4b5bKk");
         sub.add("oJkxxw63_anawaIL5-Ma8aaCmBbs");
         sub.add("oJkxxw-cxVeytpgNO3zZmtCDE40A");
         sub.add("oJkxxw6hkmHTahvCNloc9TlTVRbM");
         sub.add("oJkxxw5us1IsXoBqggy7hW2CE06E");
         sub.add("oJkxxw6Jo7fup2yY3X76jBjfmtBQ");
         sub.add("oJkxxw6dE2vTvOlQJxZ9PvB8Vta4");
         sub.add("oJkxxw1m86OZe1cP4pT6WyeugPcw");
         sub.add("oJkxxwyxgXhPEoqYhPKYVHXZDFhU");
         sub.add("oJkxxw0C84JZUncpI1jBI3bo4iGU");
         sub.add("oJkxxw3wYhL-sHLKUJCZb7Q2zMeU");
         sub.add("oJkxxw6cMZ2ic5JUZtNlV3wmIRTY");
         sub.add("oJkxxw802_ozuL-5DJgPslmvA6VI");
         sub.add("oJkxxw4A9_KDxJWBIcs0Lp4OWAAg");
         sub.add("oJkxxw_uvO1-IPyRM6H06_6ZLgXk");
         sub.add("oJkxxwwg6ECUY0WGzwAzAEZKmN9E");
         sub.add("oJkxxw--_A6JXPM1drE8bKUL9rr0");
         sub.add("oJkxxw7IFzGawfD24e-LqMJ2-I5c");
         
         List<List<String>> lists = subList(sub,4);
         List<String> lastGrounplist = lists.get(lists.size()-1);
         String lastOpenid = lastGrounplist.get(lastGrounplist.size()-1);
         System.out.println(lastOpenid);//获取到最后一组的最后一个元素
         
         System.out.println(lists);
    }
}

 

以上是关于java 将一个有大量数据的list集合分成指定大小的list集合的主要内容,如果未能解决你的问题,请参考以下文章

总结:Java 集合进阶精讲1

大数据之路week01--自学之集合_2(List)

LinkedList集合

将大量数据加载到 .net 中的 List<MyObject>

类LinkedList

黑马基础阶段测试题:创建一个存储字符串的集合list,向list中添加以下字符串:”C++””Java”” Python””大数据与云计算”。遍历集合,将长度小于5的字符串从集合中删除,删除成功(代码