0

私のコードでは

SearchBean sb=new SearchBean();
final static ArrayList<SearchBean> result=new ArrayList<SearchBean>();
public void addData()
{
.
.   (Adding data from data base into SearchBean object
.
result.add(sb);
}
public ArrayList<SearchBean> sendResult()
{
  return result;
}

今、私はですreturn result。最初は正しいものを与えていますが、2回目はそのオブジェクトも追加されます。たとえばsyam、2回目の検索結果(正しい結果)は、実際にRamは正しい結果ですが、syam,Ram来ても...助けてください...

how to remove old data into ArrayList?
4

2 に答える 2

3

フィールドではなくローカル変数にしstaticます。

一般に、フィールドの代わりにローカル変数を使用することは良い考えですが、あなたの場合はバグを修正します。;)


私は次のような方法があります

addDataAndSendSearch(); // List is only in this method.

また

List<SearchBean> list = generateSearch();
sendSearch(list);

また

List<SearchBean> list = new ArrayList<>();
match1.addData(list);
match2.addData(list);
sendSearch(list);

いずれの場合もあなたは見ることができます

  • 私は、グローバルまたはその他の方法でリストを再利用しません。
  • リストは、それを必要とするすべてのメソッドに渡されます。古い値を取得する可能性はありません。
于 2012-09-04T13:22:10.960 に答える
1

何かを追加すると、電話をかけないArrayList限りそこに残ります。remove()clear()

于 2012-09-04T13:36:12.103 に答える