我想在数组列表中搜索电话号码。电话号码是一个long
值。怎么做?
当我使用contains()
进行操作时,会引发错误。
我尝试使用contains()
方法,但是会引发错误。
public boolean removeContact(long phoneNumber)
{
for(int i=0;i<phoneBook.size();i++)
{
if(phoneBook.get(i).getPhoneNumber().contains(phoneNumber))
{
phoneBook.remove(i);
return true;
}
}
return false;
}
当我编译代码时,它显示了一个错误,即无法解除引用
答案 0 :(得分:3)
从错误中可以明显看出,getPhoneNumber
返回了long
。因此,您只需要使用==
:
if(phoneBook.get(i).getPhoneNumber() == phoneNumber)
但是正如我所说的in a comment,long
不是用于存储电话号码的正确数据类型。电话号码是文本数据。您无法将(415) 555-1234 ext 34
存储在long
中。
答案 1 :(得分:1)
由于您使用的是arraylist,因此解决方案更短:
public boolean removeContact(long phoneNumber)
{
Long number = new Long(phoneNumber);
if(phoneBook.contains(number){
phoneBook.remove(phoneBook.indexOf(number));
return true;
}
return false;
}