Ore*_*reo 7 java android arraylist
只想检查数据是否已存在于ArrayList中,但每次都得到:Not Exist(s)而数据存在于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);
}
}
Run Code Online (Sandbox Code Playgroud)
问题:
没有得到任何Toast消息,我用它来表示"数据存在"或"不存在"
最后:
我想将项目添加到arraylist如果已经不存在,否则想要显示Toast该项目已经存在(s)
pat*_*ite 20
您正在将列表对象DataArrayList.secondArraylist与a 进行比较String
if (DataArrayList.secondArraylist.equals(strName)) {
Run Code Online (Sandbox Code Playgroud)
那将永远回归false.而是创建一个循环遍历列表的方法,并根据列表中存储strName的Second对象的名称进行检查.
boolean contains(ArrayList<Second> list, String name) {
for (Second item : list) {
if (item.getName().equals(name)) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
然后使用它
if (contains(DataArrayList.secondArraylist, strName)) {
System.out.println("Data Exist(s)");
} else {
System.out.println("Not Exist(s)");
}
Run Code Online (Sandbox Code Playgroud)