public class VenueManagement extends JApplet
{
HashSet<Venue> vset;
public void addValues()
{
vset = new HashSet<Venue>();
Venue outstage = new VenueOut("Outdoor Stage");
Venue libstage = new VenueOut("Library Stage");
Venue audi = new VenueMB("Audi", true);
Venue lt1 = new VenueMB("LT1", true);
Event e1 = new Event("Drama", 11);
Event e2 = new Event("Dance", 21);
Event e3 = new Event("Music", 31);
Event e4 = new Event("Art", 41);
Event e5 = new Event("Literary", 51);
Event e6 = new Event("Informals", 61);
Event e7 = new Event("Sport", 71);
Event e8 = new Event("Tech", 81);
outstage.addEvent(1, e1);
outstage.addEvent(2, e2);
libstage.addEvent(3, e3);
libstage.addEvent(4, e4);
audi.addEvent(5, e5);
audi.addEvent(6, e6);
lt1.addEvent(7, e7);
lt1.addEvent(8, e8);
vset.add(outstage);
vset.add(libstage);
vset.add(audi);
vset.add(lt1);
Iterator<Venue> vset_iter = vset.iterator();
while (vset_iter.hasNext())
{
System.out.println(vset_iter.next().vname + " AND " + vset_iter.next());
System.out.println("***********************************************");
}
}
// ///////////////////////////////////////////////////INIT////////////
public void init()
{
this.setLayout(new BorderLayout());
addValues();
this.add(menubar, BorderLayout.NORTH);
}
}
这是我正在尝试制作的更大小程序的一部分。我遇到了问题所以我在程序的这一部分确定了它。
理论上,我应该从第40行和第41行获取所有vname
和相应Venue
对象的列表,但我似乎只得到这个:
LT1 AND labexam.VenueMB@3559b0a6
***********************************************
Library Stage AND labexam.VenueOut@12fbbad2
***********************************************
由于某种原因,我没有得到其他两个对象及其名称。
这是一个非常简单的代码,我只是为vset
创建一个迭代器,然后用while循环迭代它。
有任何线索吗?
答案 0 :(得分:5)
Iterator#next
返回迭代中的下一个元素
Iterator<Venue> vset_iter = vset.iterator();
while (vset_iter.hasNext()){
Venue v= vset_iter.next();
// you can retrieve the venue object's field here
//System.out.println(v.vname + " AND " + v);
//System.out.println("***********************************************");
}
答案 1 :(得分:0)
避免在循环中调用next()两次,你正在跳过Venues
Iterator<Venue> vset_iter = vset.iterator();
Venue venue;
while (vset_iter.hasNext())
{
venue = vset_iter.next();
System.out.println(venue.vname + " AND " + venue.otherString);
System.out.println("***********************************************");
}