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

我们如何使用Java类中允许我们这样做的列表,java,list,libraries,Java,List,Libraries,如何使用Java库中的列表来插入任何索引。我尝试使用ArrayList,但不起作用。例如,我想在索引50、40、60处插入。但不是从0开始。因为我知道您必须从0开始,对吗?如果有一种方法可以区分ArrayList中的对象是否“无用”(例如,该对象的一个附加布尔字段指示这一点),那么我们可以首先在列表中添加非空但“无用”的对象,然后使用add(int index,e element)插入“有用”的对象到任何索引。如果您希望能够在任何位置插入,您可以选择如何执行类似操作。第一种方法是插入nulls,

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

如果有一种方法可以区分ArrayList中的对象是否“无用”(例如,该对象的一个附加布尔字段指示这一点),那么我们可以首先在列表中添加非空但“无用”的对象,然后使用
add(int index,e element)插入“有用”的对象
到任何索引。

如果您希望能够在任何位置插入,您可以选择如何执行类似操作。第一种方法是插入
null
s,直到列表填充到所需的位置。不过这会很尴尬,所以我不推荐这样做

我的建议是放弃将其作为
列表的要求。您所描述的内容听起来更像是一张
地图
,而不是一张
列表
。因此,我建议您使用
树形图

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


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

的代码中导致一些问题。您是否希望在不填充索引的情况下,在任何位置插入列表?是的。另外,例如,我插入索引5和10,因此大小将为2。我不想扩展大小,因为这样做效率不高,对我也不起作用;仍然不起作用请不要在评论中添加信息,使用“编辑”将其放入问题中。这听起来像是一个错误。愿意与我们分享,你想实现什么?是的,我肯定会这样做,但规格要求我返回一个列表,其中包含指定索引中的数据。是的,但这会增加我不想看到的大小do@Sleek13你所说的“大小”是什么意思?你是说插入一个元素会增加列表的大小吗(比如,从50到51),或者你是指列表的内存使用情况?