如何检查数组是否包含inputdialog给出的值

时间:2013-09-09 16:53:53

标签: java

我在练习中遇到问题。练习是关于团队的。用户必须输入运动员的姓名和年龄,球队的名称和家庭以及运动的名称。当用户按下“创建运动员”按钮时,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);
    }
}

非常紧急,所以提前感谢您的回复

1 个答案:

答案 0 :(得分:1)

如果俱乐部已经在那里,

clubs.contains(club)会返回true,否则会返回false

您只需为数据对象(equals()Club等)实施Championship

但是,如果你需要统一,为什么不只是使用set而不是list?

private static Collection<Club> clubs = new HashSet<Club>();

在这种情况下,即使您添加两次相同的俱乐部,也只会出现一个实例。 但在这种情况下,您还应该为数据对象实现hashCode()

BTW请注意我使用的类型。你写了ArrayList(即作业左半部分的具体类。我编写了接口Collection,让我能够轻松改变cocrete的实现(ArrayListLinkedList,{{ 1}},HashSetTreeSet ),不影响其他代码。