对于打印列表的每个错误

时间:2014-01-29 03:56:56

标签: java foreach

我正在尝试为每个循环编写一个来打印列表的条目。

这是我的第一个方法:

public Staff() {
    staffList = new StaffMember[4];

    staffList[0] = new Executive("Sam", "123 Main Line",
            "555-0469", "123-45-6789", 2423.07);

    staffList[1] = new Employee("Carla", "456 Off Line",
            "555-0101", "987-65-4321", 1246.15);
    staffList[2] = new Employee("Woody", "789 Off Rocker",
            "555-0000", "010-20-3040", 1169.23);

    staffList[3] = new Hourly("Diane", "678 Fifth Ave.",
            "555-0690", "958-47-3625", 10.55);
}

这是我的每个循环,导致错误:

for (Iterator<String> i = staffList.iterator; i.hasNext();) {
    String item = i.next();
    System.out.println(item);
}

我得到的错误是staffList.iterator说“找不到符号”

2 个答案:

答案 0 :(得分:3)

staffList是一个数组。您不能将数组视为Iterator

enhanced for statement可以正常使用它,但是:

for(StaffMember member : staffList) {
    System.out.println(member);
}

注意:您要迭代的元素类型是数组中定义的类型,而不是String或其他任何内容。

如果您想了解为什么的详细信息,请鼓励您查看at the language specification以获取增强的for语句。

答案 1 :(得分:2)

staffList是一个数组。数组没有迭代器。如果要使用迭代器,请使用Collection(例如List)。

如果您正在迭代原始数组,请执行以下操作:

for ( StaffMember s : staffList ) {
  ...
}

此外,即使您使用的是列表,您的迭代器也会是Iterator<StaffList>,而不是Iterator<String>