我试图看看HashSet是否是我下一个项目的解决方案,所以我正在做一些非常简单的测试来检查功能。 我有一个简单的类Klant
:HashSet的迭代器的问题
public class Klant {
private int klantNummer;
public Klant(int nummer) {
this.klantNummer = nummer;
}
public int getKlantNummer() {
return this.klantNummer;
}
}
,并通过组合物使用HashSet
public class MySet<Klant> {
private Collection<Klant> mySet = null;
public MySet() {
mySet=new HashSet<Klant>();
}
public void add(Klant elem) {
mySet.add(elem);
}
public void toon() {
Iterator<Klant> i = mySet.iterator();
while(i.hasNext()) {
Klant k = i.next();
System.out.println(k.);
}
}
}
的问题是在该方法中toon()
基本上即使我指定该迭代将包含Klant一个类物体<Klant>
当地的k
物体没有为我提供在Klant
中定义的getKlantNummer()
方法 k
反对其仍然是一个Object
实例,甚至用它铸造:
Object k = (Klant)i.next();
将无法正常工作。 向下铸造是危险的,但据我记得它是不被禁止的。
有什么建议吗?
我推荐使用'for(Klant k:mySet)' – trutheality 2011-06-04 06:05:40
谢谢克里斯,多数民众赞成在 – JBoy 2011-06-05 11:05:43