Java(Android)重新排序对象列表

时间:2012-07-17 12:45:17

标签: java android list

我阅读了关于此的文档,我并不完全清楚。我已经注意了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处的文档设置返回被替换的对象。所以这让我认为我必须重新放置那个对象。我对么?因此,在我描述的设置操作之后,我将对列表中的对象进行两次引用。这意味着我必须循环列表以适当地放置所有其他对象吗?

4 个答案:

答案 0 :(得分:5)

使用Collection班级的swap()

swap(List list, int i, int j)

交换指定列表中指定位置的元素。

示例:

Collections.swap(arrayList,0,4);

答案 1 :(得分:2)

听起来像是要在列表的顶部插入一个对象。 不要使用set。

使用List.add(0, myObj)

它将使其余部分崩溃。

答案 2 :(得分:2)

查看Collections课程,以便进行反向,重新排序,排序等 您可能希望rotateswap

答案 3 :(得分:1)

是的,元素已被替换。它很容易修复:

int index = list.indexOf(myObj);
list.set(index, list.set(index - 1, myObj)); //Move up

这会将list(index - 1)list(index)切换。其他操作可以用同样的方式实现。