我发现这个例子,java book.i中的一个将这段代码运行到eclipse中。但是无法理解一些东西。你能理解我吗?
import java.util.*;
class Dog {
public String name;
Dog(String n) {
name = n;
System.out.println(name);
}
}
class ItTest {
public static void main(String[] args) {
List<Dog> d = new ArrayList<Dog>();
Dog dog = new Dog("Kutta");
d.add(dog);
d.add(new Dog("Kheki Kutta"));
d.add(new Dog("Leri Kutta"));
Iterator<Dog> i3 = d.iterator();
while (i3.hasNext()) {
Dog d2 = i3.next();
System.out.println(d2.name);
}
System.out.println("size " + d.size());
System.out.println("get1 " + d.get(1).name);
System.out.println("Kutta " + d.indexOf(dog));
d.remove(2);
Object[] oa = d.toArray();
for(Object o : oa) {
Dog d2 = (Dog)o;
System.out.println("oa " + d2.name);
}
}
}
这些行中会发生什么
Object[] oa = d.toArray();
for(Object o : oa) {
Dog d2 = (Dog)o;
System.out.println("oa " + d2.name);
什么是Object[] oa
,什么是Object o
?
答案 0 :(得分:2)
Object[] oa
是一个对象数组,是调用List#toArray
的结果。
这部分代码:
for (Object o : oa) {
/* your code goes here */
}
被称为enhanced for loop。就像编写这段代码一样:
for (int i = 0; i < oa.length; i++) {
Object o = oa[i];
/* your code goes here */
}
其中Object o
是一个局部变量,用于获取数组中的元素。 Object
是Java中的根类。
请将来,如果您有不明白的代码,那么您应该首先在the official Java tutorial上搜索它