2016-05-12 12 views
0

まず、ArrayListにデータを格納しています。現在のインデックス(現在の位置)に基づいて、そのデータを新しいデータに置き換えたいのですが、私が得ているのは 古いデータ、古いデータ、古いデータ、 、新しいデータは、新しいデータ....なぜarray.setに正しい出力が得られないのですか?

任意の提案

ArrayList<String> arr = new ArrayList<String>(); 

    if (arr.isEmpty()) { 
     for(int i = 0;i<=mcq.size();i++) { 
      arr.add(s); 

     } 


    } else { 

     arr.set(currentPosition, String.valueOf(arr.add(s))); 



    } 

「s」は、私がどこか別の場所から取得しています文字列値です。

+1

- リストのドキュメントを見て:https://docs.oracle.com/javase/7/docs/api/java/util/ List.htmlセットが要素を置き換えていますが、最後に追加が追加されています。最後に何かを追加して現在の位置を 'true'に置き換えます。結果は –

+0

となります。arr.set(currentPosition、 s); –

+0

はい、arr.add(s)を "s"に置き換える必要があります... –

答えて

1

これは本当に奇妙に見える:

arr.set(currentPosition, String.valueOf(arr.add(s))); 

ArrayList.setcurrentPositionに格納されている要素を変更します。文字列の値をarr.addが返す値に変更します。

ArrayList.addはブール値を返します。したがって、あなたのtrue値はから取得されます。

は、私はあなたがしたいと思うあなたが実際に達成しようとしているものをarr.set(currentPosition, s);

+0

thanks ........ @ RvdK –

関連する問題