什么是java

时间:2015-07-12 15:30:32

标签: java collections

我发现这个例子,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

1 个答案:

答案 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上搜索它