import java.util.*;public class BasicGeneric {
    public static void main(String[] args) {
        List<String> c = new ArrayList<String>();
        c.add("aaa");
        c.add("bbb");
        c.add("ccc");
        for(int i=0; i<c.size(); i++) {
            String s = c.get(i);
            System.out.println(s);
        }
        
       Collection<String> c2 = new HashSet<String>();                //Iterator不是一个接口吗`  并且Collection接口中并没有重写Iterator里面的方法`
        c2.add("aaa"); c2.add("bbb"); c2.add("ccc");                    //为什么it能用.hasNext()和.next()这两个Iterator的方法?
        for(Iterator<String> it = c2.iterator(); it.hasNext(); ) {        //说Collection里有一个iterator()的方法是怎么一回事?
            String s = it.next();                                        //有同学能解释下吗?
            System.out.println(s);
        }
    }
}class MyName implements Comparable<MyName> {
    int age;
    
    public int compareTo(MyName mn) {
        if(this.age > mn.age) return 1;
        else if(this.age < mn.age) return -1;
        else return 0;
    }
}

解决方案 »

  1.   

    1、Iterator不是一个接口吗?并且Collection接口中并没有重写Iterator里面的方法`
    Iterator是一个接口,Collection接口与它也没有继承或实现关系,但是Collection接口提供了方法来获得一个Iterator接口的实现类实例。
    2、为什么it能用.hasNext()和.next()这两个Iterator的方法?
    因为你声明的是一个Iterator接口类型的引用所以你能用它的方法
    3、说Collection里有一个iterator()的方法是怎么一回事? 
    与第一个问有点重了,这个就是JDK的API中Collection接口提供的一个方法,每一个集合的实现类都要实现它。
      

  2.   

    你可以查一下API的文档来熟悉这些~~