Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将Arraylist拆分为几个Arraylist?_Java_Arraylist - Fatal编程技术网

Java 如何将Arraylist拆分为几个Arraylist?

Java 如何将Arraylist拆分为几个Arraylist?,java,arraylist,Java,Arraylist,我正在尝试使用以下规则将Arraylist拆分为多个Arraylist: 当arraylist中的indexi的值大于indexi+1的值时,将arraylist拆分为几个子arraylist 例如,如果存在一个arraylist{6,7,8,3,9,10,1,4}, 它应该存储为{{6,7,8}、{3,9,10}、{1,4} 如何执行此操作?通过循环原始arraylist并使用sublist方法,下面的代码应该可以解决您的问题 ArrayList<ArrayList<I

我正在尝试使用以下规则将Arraylist拆分为多个Arraylist:

  • 当arraylist中的index
    i
    的值大于index
    i+1的值时,将arraylist拆分为几个子arraylist
例如,如果存在一个arraylist
{6,7,8,3,9,10,1,4}
, 它应该存储为
{{6,7,8}、{3,9,10}、{1,4}


如何执行此操作?

通过循环原始arraylist并使用sublist方法,下面的代码应该可以解决您的问题

    ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(6,7,8,3,9,10,1,4));

    int indexToSplitFrom = 0;
    for(int i = 0; i < numbers.size() - 1; i++){
        System.out.println(numbers.get(i));
        if(numbers.get(i) > numbers.get(i+1)){
            lists.add(new ArrayList<>(numbers.subList(indexToSplitFrom, i + 1)));
            indexToSplitFrom = i + 1;
        }
    }
    lists.add(new ArrayList<>(numbers.subList(indexToSplitFrom,  + numbers.size())));
ArrayList list=new ArrayList();
ArrayList编号=新的ArrayList(Arrays.asList(6,7,8,3,9,10,1,4));
int indexToSplitFrom=0;
对于(int i=0;inumbers.get(i+1)){
添加(新的ArrayList(numbers.subList(indextoplitfrom,i+1));
indexToSplitFrom=i+1;
}
}
添加(新的ArrayList(numbers.subList(indextoplitfrom,+numbers.size()));

通过循环原始arraylist并使用sublist方法,下面的代码应该可以解决您的问题

    ArrayList<ArrayList<Integer>> lists = new ArrayList<ArrayList<Integer>>();
    ArrayList<Integer> numbers = new ArrayList<>(Arrays.asList(6,7,8,3,9,10,1,4));

    int indexToSplitFrom = 0;
    for(int i = 0; i < numbers.size() - 1; i++){
        System.out.println(numbers.get(i));
        if(numbers.get(i) > numbers.get(i+1)){
            lists.add(new ArrayList<>(numbers.subList(indexToSplitFrom, i + 1)));
            indexToSplitFrom = i + 1;
        }
    }
    lists.add(new ArrayList<>(numbers.subList(indexToSplitFrom,  + numbers.size())));
ArrayList list=new ArrayList();
ArrayList编号=新的ArrayList(Arrays.asList(6,7,8,3,9,10,1,4));
int indexToSplitFrom=0;
对于(int i=0;inumbers.get(i+1)){
添加(新的ArrayList(numbers.subList(indextoplitfrom,i+1));
indexToSplitFrom=i+1;
}
}
添加(新的ArrayList(numbers.subList(indextoplitfrom,+numbers.size()));

此代码应该适合您

        List<Integer> mainList = new ArrayList<>();
        List<List<Integer>> listOfLists = new ArrayList<>();
        int listIndex = 0;
        for (int i = 0; i < mainList.size(); i++) {
            if (i == 0) {
                listOfLists.add(new ArrayList<>());
            } else if (mainList.get(i) < mainList.get(i - 1)) {
                listOfLists.add(new ArrayList<>());
                listIndex++;
            }
            listOfLists.get(listIndex).add(mainList.get(i));
        }
List mainList=new ArrayList();
List listOfLists=新建ArrayList();
int listIndex=0;
对于(int i=0;i
此代码应该适合您

        List<Integer> mainList = new ArrayList<>();
        List<List<Integer>> listOfLists = new ArrayList<>();
        int listIndex = 0;
        for (int i = 0; i < mainList.size(); i++) {
            if (i == 0) {
                listOfLists.add(new ArrayList<>());
            } else if (mainList.get(i) < mainList.get(i - 1)) {
                listOfLists.add(new ArrayList<>());
                listIndex++;
            }
            listOfLists.get(listIndex).add(mainList.get(i));
        }
List mainList=new ArrayList();
List listOfLists=新建ArrayList();
int listIndex=0;
对于(int i=0;i
公共静态无效拆分列表(ArrayList输入){
ArrayList输出=新的ArrayList();
System.out.println(“输入:”+输入);
对于(int count=0;countinput.get(index+1))){
subList.add(input.get(index));
计数=指数;
打破
}否则{
subList.add(input.get(index));
}
}
output.add(子列表);
}
System.out.println(“输出:”+输出);
}
公共静态无效拆分列表(ArrayList输入){
ArrayList输出=新的ArrayList();
System.out.println(“输入:”+输入);
对于(int count=0;countinput.get(index+1))){
subList.add(input.get(index));
计数=指数;
打破
}否则{
subList.add(input.get(index));
}
}
output.add(子列表);
}
System.out.println(“输出:”+输出);
}

根据定义,任何索引
i
都小于
i+1
(事实上,它少了一个),因此您的描述必须更加精确。您是指索引
i
i+1
处的元素吗?此外,“它应该存储在另一个arraylist中”建议在“6,7,8,3,9”中,只有8应该放在自己的列表中,因此:您需要编辑您的问题以使其更加精确。最简单和最快的方法之一是:据我所知,每个子列表必须只包含降序数字。从示例输入中,您应该只有两个子列表,如下所示:
{8,3}
{10,1}
。根据定义,任何索引
i
都小于
i+1
(事实上,它少了一个子列表),因此您的描述必须更加精确。您是指索引
i
i+1
处的元素吗?此外,“它应该存储在另一个arraylist中”建议在“6,7,8,3,9”中,只有8应该放在自己的列表中,因此:您需要编辑您的问题以使其更加精确。最简单和最快的方法之一是:据我所知,每个子列表必须只包含降序数字。从示例输入中,您应该只有两个子列表,如下所示:
{8,3}
{10,1}
。在循环的第一次中,
listOfLists.get(listIndex)
引发异常。这是因为没有实例化子列表。我第一次在循环中编辑代码,
listOfLists.get(listIndex)
抛出异常。这是因为没有实例化子列表。我编辑了代码