为什么多维数组的第一个元素没有出现在 for 循环中,但可以通过 myArray.get(0,0,0) 访问?

Why is first element of multi dimensional Array not showing in for loop but can be accessed by myArray.get(0,0,0)?

 for ( String s : strNdArr ) {
      System.out.println("s: " + s);
      // skips first element
    }
    System.out.println(strNdArr.get(0,0,0));
    // prints first element

为什么第一个元素没有出现在 for 循环迭代中,但可以用 get 单独访问?

显然,无论 strNdArr 是什么类型,它都不是 Java 数组。如果是,strNdArr.get(0, 0, 0) 将是一个编译错误。 Java 数组类型没有 get 方法。

所以……一定是Javaclass。这意味着 for 循环的行为将取决于 class 如何实现其 iterator() 方法。

Why is first element of multi dimensional Array not showing in for loop ...

因为这就是 iterator() 返回的 Iterator 已经实现的目的。

为什么?

您需要查看其文档或源代码才能弄明白。

(我不能告诉你更多,除非你告诉我们更多关于你在那里使用的 class。我非常有信心它不是标准的 Java SE class,但没有任何其他线索可以帮助搜索。)