【发布时间】:2013-10-11 12:56:37
【问题描述】:
学生的姓名(String[])和对应的分数(int[])存储在不同的数组中。
如何在 Java 中使用 for each loop 一起迭代两个数组?
void list() {
for(String s:studentNames) {
System.out.println(s); //I want to print from marks[] alongside.
}
}
一种简单的方法是在同一个循环中使用索引变量。有什么好办法吗?
【问题讨论】:
-
为什么正常的for(带有索引变量的)不够好?
-
考虑一张地图。像哈希图
-
应该注意的是,将具有关联的事物保存在单独的数组中并不是很好的设计。相反,您应该使用地图或创建具有名称和标记属性的简单类,并拥有这些对象的单个数组(或列表)。
-
这两个数组并行工作,它们唯一的关联是通过索引(因此您不能使用增强的 for 循环,因为您需要知道索引)。 Stefan 正确地指出这是一个非常糟糕的设计,它提供的灵活性非常小,我认为它从未在任意示例之外使用过。
-
就像 OP 我很失望没有更聪明的方法,例如
for(String s : studentNames, int g : grades) {...}