我阅读了关于此的文档,我并不完全清楚。我已经注意了set方法,我想我会像这样重新排序:
list.set(0,myObj);//Move first
list.set(list.indexOf(myObj) - 1, myObj);//Move up
list.set(list.indexOf(myObj) + 1, myObj);//Move down
list.set(list.size() - 1, myObj);//Move last
http://developer.android.com/reference/java/util/List.html处的文档设置返回被替换的对象。所以这让我认为我必须重新放置那个对象。我对么?因此,在我描述的设置操作之后,我将对列表中的对象进行两次引用。这意味着我必须循环列表以适当地放置所有其他对象吗?
答案 0 :(得分:5)
使用Collection班级的swap()
swap(List list, int i, int j)
交换指定列表中指定位置的元素。
示例:强>
Collections.swap(arrayList,0,4);
答案 1 :(得分:2)
答案 2 :(得分:2)
查看Collections课程,以便进行反向,重新排序,排序等 您可能希望rotate或swap。
答案 3 :(得分:1)
是的,元素已被替换。它很容易修复:
int index = list.indexOf(myObj);
list.set(index, list.set(index - 1, myObj)); //Move up
这会将list(index - 1)
与list(index)
切换。其他操作可以用同样的方式实现。