如何将旧数据删除到ArrayList?

时间:2012-09-04 13:20:14

标签: java

在我的代码中有

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?

2 个答案:

答案 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()

,否则它仍然存在