应该是与范型有关的问题

愤怒的不争 2006-12-18 09:39:37
今天查看jdk DOC 1.5 的时候发现有一个iterator<T>,还有一个iterator<E>,请问:iterator<T>和iterator<E>有什么区别??

另外,其他类都是实现的iterator<E>接口?
...全文
197 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiaoxue85 2006-12-18
  • 打赏
  • 举报
回复
学习
syoumei 2006-12-18
  • 打赏
  • 举报
回复
另外,其他类都是实现的iterator<E>接口?
----------------------------------------
其实是2个iterator都实现了
syoumei 2006-12-18
  • 打赏
  • 举报
回复
好问题
就像在桌面程序项目中主要的控件类都会经过一次包装,
这样的目的是防止控件类有变化的时候修改大面积的程序

平时结合类用到的.iterator都是因为collection继承了java.lang.iterator

java.lang.iterator返回一个java.lang.iterator

public interface Iterable<T> {
Iterator<T> iterator();
}

public interface Iterator<E> {
boolean hasNext();
E next();
void remove();
}
这时候我们才能.next .hasNext
polarman 2006-12-18
  • 打赏
  • 举报
回复
没区别
愤怒的不争 2006-12-18
  • 打赏
  • 举报
回复
我弄错了,

Vector继承了AbstractList,
AbstractList继承了AbstractCollection,
AbstractCollection实现了Collection接口,
Collection继承了Iterable接口

看了看AbstractList的源码,似乎明白了一点!
愤怒的不争 2006-12-18
  • 打赏
  • 举报
回复
我弄错了,是间接实现
dreamover 2006-12-18
  • 打赏
  • 举报
回复
谢谢大家,我还有问题:
以Vector为例

Vector实现了Iterator,我找不到Vector中有hasNext(),next()方法? 那么Vector.iterator()返回的Iterator对象是调用的hasNext()和next()?
我只看到Vector实现了Iterator<T>的iterator()方法!!
==============================================================
public class Vector<E>
extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
{
...

我怎么不明白,谁说Vector实现了Iterator?

愤怒的不争 2006-12-18
  • 打赏
  • 举报
回复
谢谢大家,我还有问题:
以Vector为例

Vector实现了Iterator,我找不到Vector中有hasNext(),next()方法? 那么Vector.iterator()返回的Iterator对象是调用的hasNext()和next()?
我只看到Vector实现了Iterator<T>的iterator()方法!!


62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧