我们如何使用 Java class 中的列表来允许我们这样做

How can we use a List from Java class that allow us this

我们如何使用 Java 库中的列表来允许我们插入任何索引。我尝试使用 ArrayList 但不起作用。例如,我想在索引 50、40、60 处插入。但不是从 0 开始。因为我知道你必须从 0 开始,对吗?

如果有办法区分ArrayList中的对象是"useless"(比如对象的一个​​额外的boolean字段表示这个),那么我们可以先加non-null但是"useless" 对象,然后使用 add(int index, E element) 将 "useful" 个对象插入到任何索引。

如果您希望能够在任何地方插入,您有几个选项可以执行类似的操作。第一个是插入 nulls 直到列表填满到你想要的点。不过那会很尴尬,所以我不推荐它。

我建议放弃 List 的要求。你所描述的听起来更像是 Map 而不是 List。所以我建议你使用 TreeMap<Integer, V>.

您可以使用 map.put(index, item) 而不是 list.add(index, item)。这可能会做你想做的,这取决于你想使用它的人。而且,由于 TreeMap 根据其键的自然顺序保持顺序,因此对其进行迭代将与使用列表时的顺序相同。

如果您真的愿意,您甚至可以编写自己的 List 实现来包装 TreeMap。这将满足您的要求,尽管我真的认为这是一个坏主意。这样做对于 List 来说是非常不典型的,并且可能会在需要常规 List

的代码中引起一些问题