本帖最后由 张 涛 于 2012-9-10 10:54 编辑
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Set;
public class CollectionDemo {
public static void main(String[] args) {
Person p1 = new Person(21);
Person p2 = new Person(23);
Person p3 = new Person(21);
HashMap hashMap = new HashMap();
hashMap.put("zhangsan", p1);
hashMap.put("lisi", p2);
hashMap.put("wangwu", p3);
Set set = hashMap.keySet();
//问题1:hashMap.keySet方法返回一个Set对象,Set是接口,
//接口可以有引用,并指向其子类对象。但是怎么可以有一个引用set指向自己的对象呢?
Iterator i = set.iterator();
while(i.hasNext()){
String s = i.next();//这里提示错误,应该把s的类型改为person
//问题2:i.next方法应该返回一个String,这里为什么会报错?
//并提示应该把s的类型改为person?
System.out.println(i.next());//而这里直接打印出的又是person。
}
}
}
class Person {
int age;
Person(int age){
this.age = age;
}
@Override
public boolean equals(Object obj) {
Person s = (Person)obj;
return this.age == s.age;
}
@Override
public String toString() {
return "Person age = "+ age;
}
}
|