从数组列表中删除项目而不使用位置

时间:2019-02-12 12:23:07

标签: android arrays arraylist android-recyclerview

大家早上好

当前,我有一个ArrayList,它允许我按一组项目位置进行删除,这在大多数情况下是完美的。但我想知道是否有可能删除我的东西,例如长变量。

当前在我的recyclerView适配器上设置的当前ArrayList。

private ArrayList<NoteInfoModal> mAdapter = new ArrayList (List)

在NoteInfoModal下,我们还为我的recyclerView使用了多行的getter和setter方法,例如名称,说明,列名等...

此刻,我只需使用以下代码即可删除项目

mAdapter.remove(position)

是否有一种方法可以更改此ArrayList,因此我可以例如从此arraylist中删除结果,而无需使用位置,而是使用arraylist中的一个项目,例如列名?

谢谢

2 个答案:

答案 0 :(得分:0)

是的,但是您必须为此运行一个for-each循环。

//suppose you have col_Id;
for(NoteInfoModel noteInfoModel : mAdapter) {
  if(noteInfoModel.getColId == col_Id) {
    mAdapter.remove(noteInfoModel);
    break;
  }
}

答案 1 :(得分:0)

当然,您只需使用要从ArrayList中删除的对象,而不是使用要删除的位置:

mAdapter.remove(yourObject)

看看official documentation

Ganesh Gudghe 还提到,必须为您的类NoteInfoModal实现hashCode()和equals()。