将对象添加到指定索引处的 ArrayList

新手上路,请多包涵

我认为这是一个相当简单的问题,但我不知道如何正确地做到这一点。

我有一个空的数组列表:

 ArrayList<object> list = new ArrayList<object>();

我有一些对象,我想在其中添加对象,每个对象都必须位于特定位置。然而,有必要将它们添加到每个可能的顺序中。当我尝试这个时,它不起作用,我得到一个 IndexOutOfBoundsException

 list.add(1, object1)
list.add(3, object3)
list.add(2, object2)

我尝试过的是用 ArrayList null 然后执行上述操作。它有效,但我认为这是一个可怕的解决方案。还有另一种方法吗?

原文由 J. Maes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 513
2 个回答

你可以这样做:

 list.add(1, object1)
list.add(2, object3)
list.add(2, object2)

将 object2 添加到位置 2 后,它会将 object3 移动到位置 3。

如果您希望 object3 始终位于 position3,我建议您使用 HashMap,其中 position 作为键,object 作为值。

原文由 superM 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用对象数组并将其转换为 ArrayList-

 Object[] array= new Object[10];
array[0]="1";
array[3]= "3";
array[2]="2";
array[7]="7";

List<Object> list= Arrays.asList(array);

ArrayList 将是- [1, null, 2, 3, null, null, null, 7, null, null]

原文由 user3484940 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题