我们如何使用允许我们使用Java类的List

时间:2015-11-14 15:27:11

标签: java list libraries

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

2 个答案:

答案 0 :(得分:2)

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

我建议放弃List的要求。您所描述的内容更像是Map而非List。所以我建议您使用TreeMap<Integer, V>

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

如果您真的想要,您甚至可以编写自己的List实现,其中包含TreeMap。这将满足您的要求,虽然我真的认为这是一个坏主意。对List执行此操作非常不典型,并且可能会在需要常规List的代码中导致一些问题

答案 1 :(得分:0)

如果有办法区分ArrayList中的对象是“无用的”(例如,对象的另一个布尔字段表示这个),那么我们可以先在列表中添加非null但“无用”的对象,然后使用add(int index, E element)将“有用”对象插入任何索引。