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()还是不能调用啊?
这到底是什么意思啊?真迷惑,请各位高手指点迷津,谢谢!
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()还是不能调用啊?
这到底是什么意思啊?真迷惑,请各位高手指点迷津,谢谢!
c.iterator()把c转型了,实际上i是最初的HashSet()
你自己在API里面看下Iterator这个类,里面有其方法介绍的
object Iterator.next();
我这也有一个和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()){...}里面。 各位大虾,帮忙看看哪里出问题了(或者提示一种正确的写法也可),谢谢!!