3

私はこれに関するドキュメントを読みましたが、完全には明確ではありません。私は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のドキュメントには、setが置き換えられたオブジェクトを返すと記載されています。そのため、そのオブジェクトを再配置する必要があると思います。私は正しいですか?したがって、私が説明した集合演算の後、リスト内のオブジェクトへの2つの参照があります。これは、他のすべてのオブジェクトを適切に配置するためにリストをループダウンする必要があることを意味しますか?

4

4 に答える 4

5

コレクションクラスを使用swap()する

swap(List list, int i, int j)

指定されたリストの指定された位置にある要素を交換します。

例:

Collections.swap(arrayList,0,4);
于 2012-07-17T12:54:19.450 に答える
2

リストの一番上にオブジェクトを挿入したいようです。セットは使用しないでください。

List.add(0、myObj)を使用します

それは残りをぶつけます。

于 2012-07-17T12:49:43.613 に答える
2

Collectionsクラスを見て、リバース、並べ替え、並べ替えなどを行います。おそらく、 rotateまたはswap
を探しています。

于 2012-07-17T12:53:52.813 に答える
1

はい、要素は置き換えられます。ただし、簡単に修正できます。

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

これはlist(index - 1)で切り替わりlist(index)ます。他の操作も同じように実行できます。

于 2012-07-17T12:52:01.123 に答える