1.Vector只实现了Iterable接口 而没有实现Enumeration 为什么可以使用它的elements方法呢?2.ArrayList和Vector都是实现Iterable接口! 可是这个接口只有iterator()这个方法?  为什么直接将ArrayList的变量直接赋值iterator的类型呢?
觉得很奇怪..为什么这两个类不是实现iterator接口呢?
Iterable iterator 这两个接口到底是什么关系?JAVA新手 望高手解答...

解决方案 »

  1.   

    Vector和Enumeration通常只在旧的程序中使用不代表没有这个方法
    现在一般用ArrayList和Iterator 
      

  2.   

    1. elements()方法是Vector自己的方法,不是Enumeration接口中定义的,Enumeration接口只定义了两个方法hasMoreElements()和nextElement(),Vector的elements()方法返回一个实现了Enumeration接口的匿名内部类的对象。2. Iterable和Iterator是两个不同的接口,各为所用。一个实现了Iterable接口的类一定可以通过调用它的iterator()方法得到一个实现了Iterator接口的对象。而不同的集合类有各自不同的Iterator,这是集合类内部定义的,比如所有List类的超类AbstractList类的内部定义了一个私有的Itr类,该类实现了Iterator接口,iterator()方法返回该类的一个实例。