假设我有一个包含元素的列表
4,7,9,17,24
我要插入11但要保持订购。 所以我想做像
这样的事情list.add(3,11),并获得以下列表:
4,7,9,11,17,24
但如果我这样做,我将17替换为11。 你能帮忙吗?
答案 0 :(得分:8)
add(int index, E element)
方法应该做你想要的。 javadoc说:
将指定元素插入此列表中的指定位置(可选操作)。将当前位置的元素(如果有)和右侧的任何后续元素移位(将其添加到索引中)。
如果没有,您使用的是错误的自定义List
实现...或者您的应用程序没有按照您的想法执行操作。 (也许您使用过list.set(3, 11))
...)
答案 1 :(得分:3)
如果您需要有序列表,请不要使用TreeSet之类的内容。它将使用对象的自然排序顺序,或者您可以传入自己的比较器。
答案 2 :(得分:2)
请仔细阅读收藏文档,看看是否能找到符合您需求的文档:
http://java.sun.com/javase/7/docs/api/java/util/LinkedList.html
http://java.sun.com/docs/books/tutorial/collections/implementations/list.html
答案 3 :(得分:1)
java.util.List接口的add方法指定应插入(不替换)对象。所以很奇怪你的程序中没有插入。
如果您发布导致问题的特定代码
,将会有所帮助答案 4 :(得分:0)
如果列表很小,您只需添加到列表的末尾,然后调用list.sort()