是否有一个List实现(在Java中)支持插入移位?

时间:2010-06-05 01:58:47

标签: java list add

假设我有一个包含元素的列表

4,7,9,17,24

我要插入11但要保持订购。 所以我想做像

这样的事情

list.add(3,11),并获得以下列表:

4,7,9,11,17,24

但如果我这样做,我将17替换为11。 你能帮忙吗?

5 个答案:

答案 0 :(得分:8)

add(int index, E element)方法应该做你想要的。 javadoc说:

  

将指定元素插入此列表中的指定位置(可选操作)。将当前位置的元素(如果有)和右侧的任何后续元素移位(将其添加到索引中)。

如果没有,您使用的是错误的自定义List实现...或者您的应用程序没有按照您的想法执行操作。 (也许您使用过list.set(3, 11)) ...)

答案 1 :(得分:3)

如果您需要有序列表,请不要使用TreeSet之类的内容。它将使用对象的自然排序顺序,或者您可以传入自己的比较器。

答案 2 :(得分:2)

答案 3 :(得分:1)

java.util.List接口的add方法指定应插入(不替换)对象。所以很奇怪你的程序中没有插入。

如果您发布导致问题的特定代码

,将会有所帮助

答案 4 :(得分:0)

如果列表很小,您只需添加到列表的末尾,然后调用list.sort()