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!它也可以使用哈希集而不是列表进行优化,但这不是问题:)