2011-09-17 16 views
147

私はこのJavaで助けが必要です。私は電球のArrayListを作成し、特定のインデックスの電球を別の電球と交換しようとしています。だから次の見出しで、私はどのように進めるのですか?Java ArrayListは特定のインデックスで置き換えます

public void replaceBulb(int index, Bulbs theBulb) { 

} 
+7

私は、「置き換える」、「置く」、または「挿入する」のListインターフェイスを検討していました。私はセットを探すことを考えなかった。 – GuiSim

+2

@ GuiSimリストのインターフェースはそれほど長くはなく、5分で一度に簡単に読むことができます。 – vaxquis

+1

私はEclipseのオートコンプリートを使っていましたが、インターフェースを見ていませんでした。 – GuiSim

答えて

257
+3

u right.Butあなたはset()メソッドのような事実につながるので、あなたはそれを編集すると思うかもしれません静的メソッドではないですか? –

+9

@AndroidKiller 'ArrayList.set();'のように静的ですが、自分のリストで呼び出すと、それはそうではありません: 'myArrayList.set(int、E);' – whitfin

+0

このメソッドの問題は、arrayOutOfBoundExceptionをarrayListが初期化されていない場合正しいインデックスに要素を追加したいのですが、その方法があるかどうかはわかりません。 – Bionix1441

20

set(int index, E element)方法をチェックしてくださいset()メソッドを使用しますsee doc

arraylist.set(index,newvalue); 
106

あなたは、一連のメソッドを使用して特定の位置にアイテムを交換することができます以下のようにArrayList:

list.set(your_index, your_item); 

しかし、あなたがset()メソッド内で渡すインデックスに要素が存在していなければ、それは例外をスローします。

+1

@vaxquis ok sirあなたはJava 8を書いてリリースしてください。我々はそれを使用するためにここにいる。 ;)。だから、答えは常に質問に応じているはずですので、まず質問をお読みください。以前の値が返された場合の問題は何ですか、その値が必要な場合はそれを残しておくことができます。それは古い価値を置き換えている、そしてそれはそれです。 –

+1

@vaxquis私は前に私のコメントを読んだのですか?明らかに言及された答えは常に問題に応じているべきである。質問をした人は、要素を置き換えることを望んでいると言いました。つまり、要素を持つarraylistがあることを意味します。今はっきりしたサー? –

+1

@vaxquisあなたが考えるものは、初心者がこれを知っているので、これらの問題は意味をなさない。まだ私はあなたを幸せにするために編集しました:) –

6
public void setItem(List<Item> dataEntity, Item item) { 
    int itemIndex = dataEntity.indexOf(item); 
    if (itemIndex != -1) { 
     dataEntity.set(itemIndex, item); 
    } 
} 
+1

これは、新しいアイテムがequals()メソッドに関して古いアイテムと等しい場合にのみ機能します。 – spikemanuk

関連する問題