在我的代码中有
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?
答案 0 :(得分: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);
在每种情况下你都可以看到
答案 1 :(得分:1)
因为一旦您在ArrayList
中添加了某些内容,除非您致电remove()
或clear()