Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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为每个循环访问索引_Java_Loops_Foreach_Indexing - Fatal编程技术网

Java为每个循环访问索引

Java为每个循环访问索引,java,loops,foreach,indexing,Java,Loops,Foreach,Indexing,我已经读过了 for (int i1 : A) { } 比 for (int i1=0; i1 < A.length; i++) { } for(inti1=0;i1A的大小 在正常情况下,两者都可以工作,选择什么通常取决于您可以使用哪个API进行循环 在本例中,第一个代码在HashMap上工作,或者不填充数组。 假设你有这个数据结构 A = [1,2,3,NULL,NULL,4,NULL,5] 在第一种情况下,只能循环现有值。 但在最后一种情况下,您

我已经读过了

    for (int i1 : A) {
    }

    for (int i1=0; i1 < A.length; i++) {
    }
for(inti1=0;i1

但是,如果我想访问第一个索引中的索引值,是否有任何平均值,或者我应该只使用第二个。

不,没有。您只需要声明一个变量。在这种情况下,最好使用传统的方法。

使用此方法或最好使用第二种方法

  int count = 0;
 for (int i1 : A) {
    print count;
    count ++;
    }

没有办法,如上所述,再看看这个类似的问题

你必须使用第二个问题。您的另一个选择是使用收藏列表作为
List List=Arrays.asList(inta[]);

list.get(int索引)

您的第一个代码是,遍历集合A中的所有项目/对象, 但是最后一个代码表示要通过索引
从0到n,n=>A的大小

在正常情况下,两者都可以工作,选择什么通常取决于您可以使用哪个API进行循环

在本例中,第一个代码在HashMap上工作,或者不填充数组。 假设你有这个数据结构

A = [1,2,3,NULL,NULL,4,NULL,5]
在第一种情况下,只能循环现有值。 但在最后一种情况下,您必须遍历所有元素

另外,一个无序或定义良好的数据结构(如Maps)可以有一个方法来保证您可以遍历所有元素,但不能按照定义良好的顺序进行操作。

Wikipedia声明:

foreach循环通常不维护显式计数器:它们本质上说“对集合中的所有对象执行此操作”,而不是“执行x次”。这避免了潜在的逐个错误,并使代码更易于阅读

如果您想使用索引,最好使用后一个版本

如果我想访问第一个索引中的索引值,是否有任何平均值

是的,你可以

int index = 0;
for (int i1 : A) 
{
    // Your logic
    // index++;
}
但同样,不推荐。如果您需要索引,请重新考虑您的逻辑


Java建议启用增强的for循环:(参见第页的最后一行)

不,您不能。for each被认为更好(引用您的问题),因为它没有count变量。这意味着从程序员的角度来看,出错的地方更少。取回数据不是由程序员自己决定的。Java用for-each为您实现了这一点

每当我不需要计数器变量时,我倾向于使用for-each。如果我需要计数,那么我必须使用旧样式的for循环