Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Arraylist中搜索长值?_Java - Fatal编程技术网

Java 如何在Arraylist中搜索长值?

Java 如何在Arraylist中搜索长值?,java,Java,我想在数组列表中搜索电话号码。电话号码是一个long值。如何做到这一点? 当我使用contains()执行此操作时,它会抛出一个错误 public boolean removeContact(long phoneNumber) { for(int i=0;i<phoneBook.size();i++) { if(phoneBook.get(i).getPhoneNumber().contains(phoneNumber)) {

我想在数组列表中搜索电话号码。电话号码是一个
long
值。如何做到这一点? 当我使用
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;
}
我尝试使用
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;
}
public boolean removeContact(长电话号码)
{

对于(int i=0;i,从错误中可以看出,
getPhoneNumber
返回一个
long
。因此您只需使用
=

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


但正如我所说,
long
不是存储电话号码的正确数据类型。电话号码是文本数据。您不能在
long
中存储
(415)555-1234 ext 34
,这是一个更短的解决方案,因为您使用的是arraylist:

public boolean removeContact(long phoneNumber)
{
    Long number = new Long(phoneNumber);
    if(phoneBook.contains(number){
        phoneBook.remove(phoneBook.indexOf(number));
        return true;
    }
    return false;
}

“电话号码是一个很长的值。”电话号码不是(尽管有一个常用术语)数字,但将一个电话号码存储在
long
中会很奇怪。在问题本身中,提到将电话号码作为
phoneBook
的长时间初始化?为什么要使用
contains
(查找子字符串匹配的
String
方法)?“当我编译代码时,它显示了一个长时间无法取消引用的错误”始终引用准确的错误消息(使用复制和粘贴)。请重新阅读第一条注释../PhoneBook.java:25:error:long如果(PhoneBook.get(I).getPhoneNumber()。包含(phoneNumber)“短得多”是夸张的,它是一个for循环,如果你修复了双倍长的创建,我会更新它:)修复了双倍长的创建:Dsimple and clean!它也可以使用哈希集而不是列表进行优化,但这不是问题:)