只是想检查数据是否已经存在于 ArrayList 中,但每次都得到:不存在而数据存在于 ArrayList 中,结果我在列表中得到重复的记录..
DataArrayList.secondArraylist.add(new Second(actorList.get(position).getName(), actorList.get(position).getImage()));
System.out.println(DataArrayList.secondArraylist.size());
String strName = actorList.get(position).getName().toString();
Log.d("name:", strName);
for(int i=0; i<DataArrayList.secondArraylist.size(); i++)
{
if(DataArrayList.secondArraylist.get(i).getName().equals(strName)) {
System.out.println(DataArrayList.secondArraylist.get(i).getName());
Toast.makeText(context, "Exist(s)", Toast.LENGTH_SHORT);
}
else {
Toast.makeText(context, "Not Exist(s)", Toast.LENGTH_SHORT);
}
}
问题:
没有收到任何 Toast 消息,我用它来指示“数据存在”或“不存在”
最后:
如果项目不存在,我想将项目添加到 arraylist,否则想向 Toast 显示该项目已经存在
最佳答案
您正在将列表对象 DataArrayList.secondArraylist
与 String
进行比较
if (DataArrayList.secondArraylist.equals(strName)) {
这将始终返回 false
。相反,创建一个循环遍历列表的方法,并根据存储在列表中的 Second
对象的名称检查 strName
。
boolean contains(ArrayList<Second> list, String name) {
for (Second item : list) {
if (item.getName().equals(name)) {
return true;
}
}
return false;
}
然后使用它
if (contains(DataArrayList.secondArraylist, strName)) {
System.out.println("Data Exist(s)");
} else {
System.out.println("Not Exist(s)");
}
关于java - ArrayList 检查数据是否已经存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30002483/