Java 将LinkedList的ArrayList清空回数组

Java 将LinkedList的ArrayList清空回数组,java,arraylist,linked-list,Java,Arraylist,Linked List,我正在尝试将LinkedList的ArrayList中的元素移回数组中。我发现一个元素未找到异常 ArrayList<LinkedList<Integer>> stacks = new ArrayList<LinkedList<Integer>>(3); int[] arr = new arr[5]; stacks.get(0).add(22); stacks.get(0).add(1); stacks.get(0).add(7); stacks

我正在尝试将LinkedList的ArrayList中的元素移回数组中。我发现一个元素未找到异常

ArrayList<LinkedList<Integer>> stacks = new ArrayList<LinkedList<Integer>>(3);
int[] arr = new arr[5];

stacks.get(0).add(22);
stacks.get(0).add(1);
stacks.get(0).add(7);
stacks.get(1).add(111);
stacks.get(2).add(123);

for (int i = 0; i < arr.length; i++)
{
   while (!stacks.isEmpty())
   {
      arr[i++] = stacks.get(i).remove();
   }
}
ArrayList stacks=新的ArrayList(3);
int[]arr=新的arr[5];
stacks.get(0)、add(22);
堆栈。获取(0)。添加(1);
堆栈。获取(0)。添加(7);
stacks.get(1)、add(111);
stacks.get(2)、add(123);
对于(int i=0;i

我会在假设while不为空的情况下进行操作,以解释这一点。我很好奇为什么它不能成功地复制内容?

您的代码中有几个问题

int[] arr = new int[5];   // not new arr[]
您没有将
LinkedList
添加到
ArrayList
。您需要先添加
LinkedList
s,然后将项目添加到
堆栈中

你的循环完全错了,我已经重写了

ArrayList<LinkedList<Integer>> stacks = new ArrayList<>(3);
int[] arr = new int[5];

stacks.add(new LinkedList<>());
stacks.add(new LinkedList<>());
stacks.add(new LinkedList<>());

stacks.get(0).add(22);
stacks.get(0).add(1);
stacks.get(0).add(7);
stacks.get(1).add(111);
stacks.get(2).add(123);

int count = 0;
for (LinkedList<Integer> stack : stacks) {
    for (Integer integer : stack) {
        arr[count++] = integer;
    }
}

System.out.println(Arrays.toString(arr));
ArrayList stacks=新的ArrayList(3);
int[]arr=新的int[5];
stacks.add(新建LinkedList());
stacks.add(新建LinkedList());
stacks.add(新建LinkedList());
stacks.get(0)、add(22);
堆栈。获取(0)。添加(1);
堆栈。获取(0)。添加(7);
stacks.get(1)、add(111);
stacks.get(2)、add(123);
整数计数=0;
for(LinkedList堆栈:堆栈){
for(整数:堆栈){
arr[count++]=整数;
}
}
System.out.println(Arrays.toString(arr));

这样就可以了。此示例使用
ArrayLists
,但也可以使用
linkedlist
或实现
列表
接口的任何内容

创建列表列表

        ArrayList<List<Integer>> stacks =
                new ArrayList<>(List.of(List.of(22, 1, 7),
                        List.of(111, 112), List.of(44, 123, 99)));
印刷品

[22, 1, 7, 111, 112, 44, 123, 99]


空到数组中是什么意思?将它们输入到数组中。因此,获取stacks.get(0)和stacks.get(1)和stacks.get(2)的元素,并将它们输入数组arr。
[22, 1, 7, 111, 112, 44, 123, 99]