请教 容器问题(Iterator接口)

xulongfa 2008-03-22 03:34:19
import java.util.*;
public class IteratorTest {
public static void main(String[] args) {
Collection c = new HashSet();
c.add("A");
c.add("B");
c.add("C");

for(Iterator i=c.iterator(); i.hasNext();) {
String s = (String)i.next();
}

System.out.println(c);
}
}


Iterator i=c.iterator(); 请问这句话是什么意思?方法可以返回一个接口吗?如果能,那么i.next()是抽象的,怎么能用呢?如果i是指向String对象的一个引用,因为String类没有实现Iterator中的next()方法,那么i.next()还是不能调用啊?
这到底是什么意思啊?真迷惑,请各位高手指点迷津,谢谢!
...全文
87 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanibal170 2008-03-24
  • 打赏
  • 举报
回复
它返回的是一个能遍历它内容的迭代器,跟hashset实现了什么接口没有关系,你可以看看它的源代码就明白了
xulongfa 2008-03-22
  • 打赏
  • 举报
回复
那HashSet类也没有实现Iterator接口啊,i怎么能指向HashSet()的对象呢
Eract 2008-03-22
  • 打赏
  • 举报
回复
学习。
我这也有一个和iterator接口相关的一个程序,大家帮忙看看是哪里出问题了:
public static void main(String[] args) {
Vector <String> vecStr=new Vector <String>(); //vecStr记录信息
vecStr.add("Monday");
vecStr.add("Tuesday");
vecStr.add("Wednesday");
String text="Monday+sd- Tuesday{}ds";//用于匹配的字符串
String temp; //临时字符串
Pattern pw=Pattern.compile("(\\w+)");
Matcher m=pw.matcher(text);
Iterator <String> it=vecStr.iterator();
while(m.find()){
temp=m.group();
// System.out.println(temp); //测试, m 匹配出的是“Monday sd Tuesday ds”
it=vecStr.iterator();
while(it.hasNext()){ //it 迭代遍历vecStr每一成员
// System.out.println(it.next()); // 测试,表明vecStr的每一个成员的确都有变量到
if(temp==it.next()){
System.out.println(temp); //此行代码经调试未执行,不知为什么
}
}
}
}

我碰见的问题是:按我自己的程序走法,结果应该输出匹配出的Monday Tuesday,
但是实际没有输出。经调试,发现问题出在while(it.hasNext()){...}里面。

各位大虾,帮忙看看哪里出问题了(或者提示一种正确的写法也可),谢谢!!
jinancf 2008-03-22
  • 打赏
  • 举报
回复
iterator()是Collection的迭代器,它返回集合中元素对象
wenzheng38 2008-03-22
  • 打赏
  • 举报
回复
boolean Iterator.hasNext();
object Iterator.next();
wenzheng38 2008-03-22
  • 打赏
  • 举报
回复
Iterator是个迭代器
你自己在API里面看下Iterator这个类,里面有其方法介绍的
qsrock 2008-03-22
  • 打赏
  • 举报
回复
Collection c = new HashSet(); 是向上转型
c.iterator()把c转型了,实际上i是最初的HashSet()

62,614

社区成员

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

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