2

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

4,7,9,17,24

我想插入 11,但要让它们保持有序。所以我想做类似的事情

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

4,7,9,11,17,24

但如果我这样做,我会用 11 代替 17。你能帮忙吗?

4

5 回答 5

8

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

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

如果没有,您正在使用错误的自定义List实现......或者您的应用程序没有按照您认为的那样做。(也许你用过list.set(3, 11))......)

于 2010-06-05T02:03:57.997 回答
3

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

于 2010-06-05T02:09:45.940 回答
2

浏览一下 Collections 文档,看看是否能找到满足您需求的文档:

http://java.sun.com/javase/7/docs/api/java/util/LinkedList.html

http://java.sun.com/docs/books/tutorial/collections/implementations/list.html

于 2010-06-05T02:04:25.047 回答
1

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

如果您可以发布导致问题的特定代码,这将有所帮助

于 2010-06-05T02:05:19.460 回答
0

如果列表很小,您可以简单地添加到列表的末尾,然后调用list.sort()

于 2010-06-05T02:05:18.850 回答