我在练习中遇到问题。练习是关于团队的。用户必须输入运动员的姓名和年龄,球队的名称和家庭以及运动的名称。当用户按下“创建运动员”按钮时,Joptionpane.inputdialog出来询问他想要将运动员放在哪个队伍中。
我的问题是如何检查团队是否存在于arraylist团队中,以及如何将运动员置于该团队中。
if(e.getSource() == createAthlete){
String nameA = athleteName.getText();
Athlete A = new Athlete(nameA,Integer.parseInt(athleteAge.getText()));
String team= JOptionPane.showInputDialog("In what team do you want to place the athlete?);
}
public class Championship {
private String name;
private int durationMonths;
private static ArrayList<Championship> cship = new ArrayList<Championship>();
private static ArrayList<Club> clubs = new ArrayList<Club>();
public Championship(String name, int durationMonths){
this.name = name;
this.durationMonths = durationMonths;
}
public static void addChampioship(Championship c){
cship.add(c);
}
public static void addClub(Club club){
clubs.add(club);
}
}
非常紧急,所以提前感谢您的回复
答案 0 :(得分:1)
clubs.contains(club)
会返回true
,否则会返回false
。
您只需为数据对象(equals()
,Club
等)实施Championship
。
但是,如果你需要统一,为什么不只是使用set而不是list?
private static Collection<Club> clubs = new HashSet<Club>();
在这种情况下,即使您添加两次相同的俱乐部,也只会出现一个实例。
但在这种情况下,您还应该为数据对象实现hashCode()
。
ArrayList
(即作业左半部分的具体类。我编写了接口Collection
,让我能够轻松改变cocrete的实现(ArrayList
,LinkedList
,{{ 1}},HashSet
,TreeSet
等),不影响其他代码。