如何在Arraylist中搜索长值?

时间:2019-06-17 10:09:01

标签: java

我想在数组列表中搜索电话号码。电话号码是一个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;
}

当我编译代码时,它显示了一个错误,即无法解除引用

2 个答案:

答案 0 :(得分:3)

从错误中可以明显看出,getPhoneNumber返回了long。因此,您只需要使用==

if(phoneBook.get(i).getPhoneNumber() == phoneNumber)

但是正如我所说的in a commentlong不是用于存储电话号码的正确数据类型。电话号码是文本数据。您无法将(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;
}