当前位置: 代码迷 >> Java相关 >> 对一小段代码有疑惑~
  详细解决方案

对一小段代码有疑惑~

热度:117   发布时间:2009-10-24 20:19:45.0
对一小段代码有疑惑~
程序代码:
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;
    }
}

搜索更多相关的解决方案: 代码  

----------------解决方案--------------------------------------------------------
你先要搞清楚Iterator是什么,对集合进行迭代的迭代器(建议仔细看下API)
至于你说的Collection接口中并没有重写Iterator里面的方法`,new 的是HashSet
如下:
Collection<String> c2 = new HashSet<String>();                //HashSet里有iterator()方法的.
----------------解决方案--------------------------------------------------------
回复 楼主 chump345
Collection的父接口是Iterable,其中有iterator方法返回一个Iterator,这个类中有hasNext()和next()方法,HashSet类实现了Collection接口,这是向上转型。


----------------解决方案--------------------------------------------------------
  相关解决方案