对一小段代码有疑惑~
程序代码:
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;
}
}
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接口,这是向上转型。----------------解决方案--------------------------------------------------------