包含方法 returns 始终为 false?
Contains method returns always false?
我正在获取联系人并添加到 list.list 也包含重复的联系人,我必须在添加到列表时删除重复的联系人。
我在添加到列表时使用 contains 方法,但 contains 方法总是 returns false 即使列表中有相同的元素。
if (!phoneContactVOList.contains(contactVO)) {
contactVO.ContactName = name
contactVO.ContactNumber = phoneNumber
phoneContactVOList.add(contactVO)
}
在上面的代码中,我试图只在列表中添加唯一的联系人,但也会添加重复的联系人。
您需要覆盖 equals(...)
方法并编写自定义实现,如果 name
和 phoneNumber
相同,则 returns 为真。
例如像这样:
override fun equals(other: Any?): Boolean {
if(other == null || other !is ContactClassObject)
return false
return name == other.ContactName && phoneNumber==other.phoneNumber
}
如果您的数组列表不包含此内容,则您正在 contactVO 对象中设置值。
检查包含方法时 contactVO 的每个变量的值是多少?
你不能这样做。您需要为每个 arraylist 项目检查一个特定变量以做出决定,是否应该添加它。
遍历循环然后检查 phone 数字,如果不匹配则添加到列表中。
按照下面的代码,
boolean insert = true;
for(int i = 0; i < phoneContactVOList.size(); i++){
if (phoneContactVOList.get(i).ContactNumber.equals(phoneNumber)){
insert = false;
break;
}
}
if (insert){
//set phoneContactVOList variable values
phoneContactVOList.add(contactVO);
}
## 在开始循环之前你需要设置插入变量值 false
我正在获取联系人并添加到 list.list 也包含重复的联系人,我必须在添加到列表时删除重复的联系人。
我在添加到列表时使用 contains 方法,但 contains 方法总是 returns false 即使列表中有相同的元素。
if (!phoneContactVOList.contains(contactVO)) {
contactVO.ContactName = name
contactVO.ContactNumber = phoneNumber
phoneContactVOList.add(contactVO)
}
在上面的代码中,我试图只在列表中添加唯一的联系人,但也会添加重复的联系人。
您需要覆盖 equals(...)
方法并编写自定义实现,如果 name
和 phoneNumber
相同,则 returns 为真。
例如像这样:
override fun equals(other: Any?): Boolean {
if(other == null || other !is ContactClassObject)
return false
return name == other.ContactName && phoneNumber==other.phoneNumber
}
如果您的数组列表不包含此内容,则您正在 contactVO 对象中设置值。 检查包含方法时 contactVO 的每个变量的值是多少? 你不能这样做。您需要为每个 arraylist 项目检查一个特定变量以做出决定,是否应该添加它。 遍历循环然后检查 phone 数字,如果不匹配则添加到列表中。 按照下面的代码,
boolean insert = true;
for(int i = 0; i < phoneContactVOList.size(); i++){
if (phoneContactVOList.get(i).ContactNumber.equals(phoneNumber)){
insert = false;
break;
}
}
if (insert){
//set phoneContactVOList variable values
phoneContactVOList.add(contactVO);
}
## 在开始循环之前你需要设置插入变量值 false