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。第一次它给出正确但第二次该对象也将被添加。例如第一次搜索结果syam(正确结果)第二次搜索实际上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 回答