【发布时间】:2020-04-22 16:50:24
【问题描述】:
Contact 是一个带有参数化构造函数的公共类,其中getPhoneNumber() 作为方法之一,下面的代码位于不同的类中,其中:
List<Contact> list=new ArrayList<Contact>();
这是我现在使用的代码:
for(Contact contact:list)
{
n=contact.getPhoneNumber();
if(num==n)
return contact
}
如何按以下格式编写此代码:
for(i=0;i<list.size();i++)
{
...
...
...
}
【问题讨论】:
-
你看过the docs吗?
-
"这是我现在使用的代码:" 有什么问题吗?为什么要放弃它?
-
欢迎来到 Stack Overflow。请注意,正如the help section 所说,您应该在考虑在这里提问之前进行搜索和研究。我写这篇文章是因为我发现你的问题似乎没有得到很好的研究。
-
"
if(num==n)" 这意味着您将电话号码表示为数字(这是不好的,例如因为您不能表示以 0 开头的数字);或者您是通过身份而不是平等来比较引用(这可能不是您真正想要的)。 -
请注意,如果在某些时候您的列表将是
LinkedList,那么每个 get(index) 都需要从头开始,因此要获取第 N 个元素,它需要从 1 开始迭代, 2,3,..N 到达您的元素,使其非常低效。您当前的 for-each 循环通过在内部使用 Iterator 解决了这个问题,它记住列表中的当前元素,因此它可以简单地跳转到下一个。
标签: java class object arraylist java-8