java - 分割数组列表中的元素

标签 java

我正在尝试拆分数组列表中的元素。 例如我有一个 arrayList 就像

List <String> elements = new ArrayList<String>();

elements //["frnec","fdct","logic","mastro","seloger"] 元素的大小应该是动态的......

 List<List<String>> splittedlists = null;

我想分割元素,例如["frnec"],["fdct",logic"],["mastro","seloger"]。

splittedlists //[["frnec"] ,["fdct",logic"],["mastro", "seloger"]].

但是新的splittedlists的大小不应超过4,基于此我必须切割元素

我有很多代码来分割列表。但我不知道如何设置'splittedlists'的最大大小。 但它会通过设置吐出元素的目标大小来分割

  public static <T extends Object> List<List<T>> split(List<T> list, int targetSize) {
        List<List<T>> lists = new ArrayList<List<T>>();
        for (int i = 0; i < list.size(); i += targetSize) {
            lists.add(list.subList(i, Math.min(i + targetSize, list.size())));
        }
        return lists;
    }

我的要求是通过设置splittedlists的最大数组大小(此处为4)来拆分列表中的元素

如果元素是 //["frnec","fdct"] 我想拆分为 ["frnec"], ["fdct"] 如果元素是 //[0, 1, 2, 3, 4, 8, 6] 我必须在不超过新数组大小的情况下进行拆分 4 就像

 [[0,1],[2,3],[4,8],[6]]

最佳答案

这是我的答案..我猜你能理解我在做什么..

    List<String> list = new ArrayList<>();
    for (int i = 1; i < 11; i++) {
        list.add(i+"");
    }
    List<List<String>> lists = new ArrayList<>();
    int x = list.size()/4;
    int y = list.size()%4;
    int j = 0;
    for (int i = 0; i < list.size(); i=j) {
        j = i+x;
        if(y>0){
            j++;
            y--;
        }
        lists.add(list.subList(i, j));
    }
    System.out.println(list);
    System.out.println(lists);

关于java - 分割数组列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34236338/

相关文章:

Java游戏重置时不保存变量

java - 没有 csv 的 split() 方法

java - 为什么我的光标计数为0?

java - Java 中类似事务的编程

java - 打开终端窗口客户端

java - 构建 impl.xml :1031: The module has not been deployed

java - 使用 Random 作为 ArrayList 中的索引,如果之前使用过则不会移动

java - 如果行长度不相等,如何将行长度转换为列长度并反转 (java)

java - 来自单个 jsp 表单 spring mvc 的多模型属性

java - Thymeleaf - 输入动态字符串列表