0

我有这个类,并且在 printVotes 方法中,我每次都必须执行 if 语句来打印每张选票。有什么方法可以结合这两个 if 语句。我可以同时打印所有候选人的姓名和他们获得的票数吗?

public class TestCandidate {
    public static void main(String[] args)
    {
        Canidate[] canidate = new Canidate[5];

        // create canidate
        canidate[0] = new Canidate("John Smith", 5000);
        canidate[1] = new Canidate("Mary Miller", 4000);        
        canidate[2] = new Canidate("Michael Duffy", 6000);
        canidate[3] = new Canidate("Tim Robinson", 2500);
        canidate[4] = new Canidate("Joe Ashtony", 1800);       

        printVotes(canidate) ;    
    }

    public static void printVotes(Canidate [] List)
    {
        double max;
        int index;

        if (List.length != 0)
        {

            index = 0;
            for (int i = 1; i < List.length; i++)
            {

            }

            System.out.println(List[index]);
        }

        if (List.length != 0)
        {
            index = 1;
            for (int i = 1; i < List.length; i++)
            {

            }
            System.out.println(List[index]);
            return;
        }
    }
}
4

2 回答 2

1

如果您传入 aList<Candidate> candidates;并假设每个候选人都有 a List<Integer> Votes

    List<Integer> votes= new ArrayList<Integer>() ;
    for(Candidate c:candidates)
    {
       votes.add(c.GetVote()) ;
    } 
    for(Integer v:votes)
    {
      System.out.println(v);
    }
于 2013-05-04T21:55:34.450 回答
0

您可以像这样覆盖Candidate类的toString()方法:

public String toString() {
    return "Candidate Name: " + this.name + "\nVotes: " + this.votes;
}

然后你的printVotes方法看起来像这样:

public static void printVotes(Candidate[] list) {
    for(Candidate c : list) {
        System.out.println(c);
    }
}

正如其他人提到的,避免在变量名中使用大写字母,尤其是在使用诸如 List 之类的词的情况下。List 是一个集合类型,很容易混淆。

于 2013-05-04T22:49:17.653 回答