【问题标题】:can I use for each for two same sized arrays我可以将每个用于两个相同大小的数组吗
【发布时间】:2012-06-30 18:01:09
【问题描述】:

我有两个数组:

name[] and roll[]

有没有办法在一个循环中遍历两个数组。两个数组的大小保持不变。

我知道使用两个单独的循环,我们可以遍历并实际上在一个循环中也没什么大不了的,但我想要这样的东西:

for(String n:name,int r:roll){
  //blah blah
}

请多指教,谢谢..... 安库尔

【问题讨论】:

标签: java arrays


【解决方案1】:

for...each 循环不公开索引(故意的,实际上它甚至没有索引)。如果您真的很想使用自己的索引,则可以使用它,但是最好使用带有索引的老式 for 循环。

以下是您将如何使用自己的索引:

{
    int index = 0;
    for(String name : names) {
        // roll[index];
        ++index
    }
}

另请参阅this 答案。

【讨论】:

  • 为什么这容易出错以及为什么我们需要增强的 foreach 的示例!你使用了 index 和 i - 这是我犯的那种错误。
  • 好收获!至少编译器会帮助我们(我在手机上输入了答案)。
【解决方案2】:

没有。您不能使用单个 for-each 循环遍历两个相同大小的数组。

如果你想在一个循环中迭代两个数组,那么你将不得不使用传统的 java for 循环

【讨论】:

  • 你在java中没有数字索引数组吗?
  • @PeeHaa:当然,Java 可以对数组进行索引访问,但提问者专门询问了增强的for 循环(“for each”)。
  • K tnx(我是 PHP 人)。当两个数组都是零索引时,这不是可能的吗?
【解决方案3】:

没有。你将不得不使用老式的

for(int index = 0; index < name.length; index++) {
  //blah blah with name[index] and roll[index]
}

【讨论】:

  • 问题是for-each循环而不是简单的for循环
  • 我知道,我只是指出(相当明显)唯一的选择。编辑以使其更清晰。
【解决方案4】:
for(int i=0,len=name.length; i<len; i++) {
     String n = name[i];
     int r = roll[i];
}

【讨论】:

    猜你喜欢
    • 2016-03-19
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 1970-01-01
    • 2013-11-12
    • 2012-03-05
    • 1970-01-01
    • 2011-08-04
    相关资源
    最近更新 更多