数组 列表 拆分

  1. /**
    * 将一个list均分成n个list,主要通过偏移量来实现的
    * @param source
    * @return
    */
    public static <T> List<List<T>> averageAssign(List<T> source,int n){
    List<List<T>> result=new ArrayList<List<T>>();
    int remaider=source.size()%n; //(先计算出余数)
    int number=source.size()/n; //然后是商
    int offset=0;//偏移量
    for(int i=0;i<n;i++){
    List<T> value=null;
    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;
    }

    @SuppressWarnings("unused")
    public static void main(String[] args) {
    List<Integer> integers=new ArrayList<>();
    integers.add(1);
    integers.add(2);
    integers.add(3);
    integers.add(4);
    integers.add(5);
    List<List<Integer>> lists=averageAssign(integers, 2);
    System.out.println(lists);
    }

原文地址:https://www.cnblogs.com/Struts-pring/p/9681694.html

时间: 2024-07-31 12:24:58

数组 列表 拆分的相关文章

数组与数组列表

数组 数组代表一系列对象或者基本数据类型,所有相同的类型都封装到一起——采用一个统一的标识符名称.简单来讲,数组就是一组相关数据的集合,是一连串的变量.Java中数组的定义和使用时通过方括号索引运算符进行的({}),一般来说,有两种定义数组的方法,只需在类型名或标识符后跟一对方括号即可. int[] a1; int a1[]; 两种表示方法是完全一样的.此时只是声明了指向数组的一个对象,并未对其分配任何空间,为了创建数组相应的存储空间,就必须要写一个初始化表达式.如: int b = {1, 2

.NET重思(三)-数组列表与数组的区别,栈集合和队列结合的区别

数组列表和数组十分相似,区别在于数组列表的容量是可以动态变化的,而数组的容量是固定的.数组即Array类,数组列表即ArrayList类,两者十分相似.不过,Array类在System命名空间下,ArrayList类在System.Collections命名空间下.数组在初始化时需要指定容量,并且指定之后无法改变,而数组列表可以动态的改变容量. //初始化ArrayList ArrayList lst = new ArrayList(); //初始化ArrayList并将容量设置为100 Arr

ArrayList数组列表

ArrayList数组列表 Collection接口和List接口的区别 List接口扩充了Collection接口,添加了索引相关的方法. code example Object get(int index) Object set(int index,Object element) int indexOf(Object elem) void add(int index,Object element) Object remove(int index) List接口中的大多数方法是基于索引的. A

泛型数组列表 ArrayList

为什么使用泛型数组列表而不使用普通数组? 1.普通数组经常会发生容量太大以致浪费的情况 2.普通数组无法动态更改数组 基本概念: 1.采用[类型参数]的[类]---->[泛型类] 2.[泛型类型]就是类型参数的类型 对泛型数组列表的操作: 1.添加元素,add方法,默认在尾部添加,变化参数可以插入到中间.删除元素 2.初始化容量(ensurecapacity或是把初始容量传递给构造器) 3.回收多余的存储空间(trimToSize) 4.访问数组元素 get(i) 5.转化为数组 toArray

基于泛型的数组列表

在<数组和数组列表>那篇随笔里我们定义了一个int类型的数组列表,但是这样实际上是有问题的,在日后的开发中我们使用的数组列表实际上并不一定是int类型的,甚至于,还不一定会是基本数据类型的.那这个时候,按照原来的方法,我们在开发中每要定义一个数组列表,我们就要重写一遍,这样做实际上是非常不友好的.那么有什么方法来解决这一问题呢,这样我们便引出了泛型这个概念 泛型 什么是泛型?泛型简单来理解实际上就是一个类类型,它是表示一个类的类型,而不具体表示某一个对象.由于在此重点是数组列表,关于泛型的其他

自定义数组列表和队列

最近一直在研究数据结构与算法,涉及到自定义数组和队列,感觉对JDK源代码的底层功能实现学习有一定的帮助,故作此总结,以供参考. ps:JDK的源代码更加复杂,我的自定义数组列表和队列只是一些简单的逻辑实现. 1.自定义数组列表(MyArrayList.java) package com.BlueStarWei.arrayList; /** * * show all fields and method,please click "ctrl + o" * * * 开发过程遇到的问题: *

java-基础入门-泛型数组列表-解决运行时动态更改数组的问题

泛型数组列表,主要是为了解决运行时动态更改数组的问题 平常我们会定义一个部门里面的人员的一个数组, 但是在实际业务当中,这个数组的大小往往是不确定的, 如果定义过大,那么会浪费空间,定义过小,又不够用, 因为为了解决运行时动态更改数组的问题,我们提出下面的解决方案. package com.ray.object; import java.util.ArrayList; /** * 泛型数组列表 ,解决运行时动态更改数组的问题 * * @author ray * @since 2015-05-04

泛型数组列表

java.util.ArrayList<T> ArrayList<>() 构造一个空数组列表 ArrayList<T>(int initialCapacity) 用指定容量构造一个空数组列表 boolean add(T obj) 在数组列表的尾端添加一个元素 int size() 返回存储在数组列表中的当前元素数量.(这个值小于或等于数组列表的容量) void ensureCapacity(int capacity) 确保数组列表在不重新分配存储空间的情况下就能够保存给

python数组列表、字典、拷贝、字符串

python中字符串方法 1 name = "I teased at life as if it were a foolish game" 2 print(name.capitalize())#首字母大写 3 print(name.count("a"))#查找字符串中a的个数 4 print(name.center(50,"-"))#长度为50将name放中间不够的用-补全 5 print(name.endswith("ex"