假设我有一个包含元素的列表
4,7,9,17,24
我想插入 11,但要让它们保持有序。所以我想做类似的事情
list.add(3, 11),并获取以下列表:
4,7,9,11,17,24
但如果我这样做,我会用 11 代替 17。你能帮忙吗?
该add(int index, E element)
方法应该做你想做的。javadoc是这样说的:
在此列表中的指定位置插入指定元素(可选操作)。将当前位于该位置的元素(如果有)和任何后续元素向右移动(将其索引加一)。
如果没有,您正在使用错误的自定义List
实现......或者您的应用程序没有按照您认为的那样做。(也许你用过list.set(3, 11))
......)
如果您需要有序列表,为什么不使用TreeSet 之类的东西。它将使用对象的自然排序顺序,或者您可以传入自己的比较器。
浏览一下 Collections 文档,看看是否能找到满足您需求的文档:
http://java.sun.com/javase/7/docs/api/java/util/LinkedList.html
http://java.sun.com/docs/books/tutorial/collections/implementations/list.html
java.util.List 接口的 add 方法指定应该插入(而不是替换)对象。所以奇怪的是在你的程序中它没有被插入。
如果您可以发布导致问题的特定代码,这将有所帮助
如果列表很小,您可以简单地添加到列表的末尾,然后调用list.sort()