目前我正在使用 ArrayList 来存储元素列表,因此我需要在特定位置插入新元素。我需要在大于当前大小的位置输入元素。例如:
ArrayList<String> arr = new ArrayList<String>();
arr.add(3,"hi");
现在我已经知道会有 OutOfBoundsException。有没有其他方法或其他对象可以在保持订单的同时做到这一点?这是因为我有根据索引查找元素的方法。例如:
ArrayList<String> arr = new ArrayList<String>();
arr.add("hi");
arr.add(0,"hello");
我希望现在在索引 1 而不是索引 0 处找到“hi”。
所以总而言之,除了手动将 null 插入中间的元素之外,有什么方法可以满足这两个要求:
- 将元素插入到大于当前大小的位置
- 当我在列表中间插入元素时,将现有元素向右推
我查看了Java ArrayList add item outside current size以及 HashMap,但 HashMap 不满足我的第二个标准。任何帮助将不胜感激。
PS 性能现在不是真正的问题。
更新:关于为什么我有这些特殊要求存在一些问题,这是因为我正在进行操作转换,我正在将一组操作插入到我的列表(一个数学公式)中。每个操作都包含一个字符串。当我在列表中插入/删除字符串时,我将通过跟踪已应用的每个操作来动态更新未应用的操作(如有必要)。我现在的解决方案是使用 ArrayList 的子类并覆盖一些方法。我当然想知道是否有更优雅的方式这样做。