2011-08-12 14 views
4

私はArrayListを持っています。特定のアイテムが0の位置にあることを確認する必要があります。そうでない場合は、移動する必要があります。アイテムにはisStartItemブール値があるので、私はポジション0にする必要がある特定のアイテムを簡単に見つけることができますが、正しいポジションに移動するにはどうすればいいですか?Android:ArrayListアイテムを0に移動

私はこのようなものを使用する必要があると仮定しています:あなたがCollectionsクラスのswapメソッドを使用する必要があります...

for(int i=0; i<myArray.size(); i++){  
    if(myArray.get(i).isStartItem()){ 
     Collection.swap(myArray, i, 0); 
    } 
} 

しかし、これは動作するようには思えないの

+1

をあなたが何を意味しますか」これはうまくいかないようです」それはエラーを生成するか、例外をスローするか、単にスワップが発生しないか? –

答えて

15

を。 Collectionsであり、最後にsである。

変更 - これまで

Collection.swap(myArray, i, 0); 

-

Collections.swap(myArray, i, 0); 

thisの例を見てみましょう。

CollectionCollectionsは、Javaでは2つの異なるものです。最初のものはインターフェイス、もう1つはクラスです。後者は静的なスワップメソッドを持っていますが、前者は静的なスワップメソッドです。

+0

おっと...私は質問を打ち込んでいたときにちょっと忘れました。 – ryandlf

+0

@ryandlf:ああ......それで、 "うまくいかない"ってどういう意味なのか教えてくれませんか? –

+0

これは、要素をiで0に移動すると、実際には0にある要素をiに移動しますか?もしそうなら、私はそれがOPが探しているものだとは思わない。私は通常、単に何かを保存するために新しいオブジェクトを作成してから.remove(インデックス)を呼び出してそれを取り出し、インデックスが0の.add(index、object)を呼び出します。yada yada – MrTristan

-1

Arraylistの設定機能を使用できます。

set(position,object) 
+2

arraylistでは0で「オブジェクト」と表示されます。私はOPが要素を失いたくないと思っています。 –

+0

私はこのメソッドを試してみましたが、Tedと同じように記述しました。 – ryandlf

5

私はCollection.swapが何であるかわからないが、このコードは動作するはずです:

for(int i=0; i<myArray.size(); i++){  
    if(myArray.get(i).isStartItem()){ 
     Collections.swap(myArray, i, 0); 
     break; 
    } 
} 

それともあなたはそれを長い手の操作を行うことができます

for(int i=0; i<myArray.size(); i++){  
    if(myArray.get(i).isStartItem()){ 
     Object thing = myArray.remove(i); // or whatever type is appropriate 
     myArray.add(0, thing); 
     break; 
    } 
} 
関連する問題