我已经阅读过了
我已经读到
for (int i1 : A) {
}
比
更好。 for (int i1=0; i1 < A.length; i++) {
}
如果我想访问第一个中的索引值,是否有办法或者只能使用第二个?
Wikipedia指出:
foreach循环通常不维护显式计数器:它们基本上是说"对此集合中的所有内容执行此操作",而不是"执行x次此操作"。这避免了潜在的偏移错误,并使代码更易于阅读。
如果您想使用索引,则最好使用后一个版本。
如果我想要访问第一个中的索引值,有什么方法吗?
是的,您可以。
int index = 0;
for (int i1 : A)
{
// Your logic
// index++;
}
但是,不建议这样做。如果您需要在增强for循环中获取索引,请重新考虑您的逻辑。
Java建议使用增强for循环:来源(请参见页面上的最后一行)。
使用这个或者最好选择第二个选项
int count = 0;
for (int i1 : A) {
print count;
count ++;
}
你的第一段代码表示,遍历集合A中的所有项/对象,
但是最后一段代码说要遍历索引从0到n,n=>A的大小
在正常情况下,两者都可以工作,选择哪个通常取决于您可以使用哪个API循环。
在你的第一段代码中,适用于HashMap或未填充数组。 假设你有这个数据结构
A = [1,2,3,NULL,NULL,4,NULL,5]
没有,你只需要声明一个变量。在这种情况下最好还是使用传统的方法。
你必须使用第二个。另一个选择是使用集合列表,如下所示:
List list = Arrays.asList(int a[]);
list.get(int index);
不可以这样做。从程序员的角度来看,for-each循环被认为是更好的(引用你的问题),因为它没有计数变量。这意味着从程序员的角度来看,出错的地方就更少了。获取数据不是你作为程序员的任务。Java会使用for each帮助你完成。
当我不需要计数变量时,我倾向于使用for-each循环。如果我需要计数,则必须使用旧的for循环方式。