用Java编写一个投票并且可以根据票数排名
时间: 2023-09-05 09:08:09 浏览: 158
好的,我可以为您提供一个简单的Java代码示例来实现投票并按照投票得票数进行排名。
```
import java.util.*;
public class VotingSystem {
private Map<String, Integer> candidateVotes;
public VotingSystem(List<String> candidates) {
candidateVotes = new HashMap<>();
for (String candidate : candidates) {
candidateVotes.put(candidate, 0);
}
}
public void castVote(String candidate) {
if (candidateVotes.containsKey(candidate)) {
candidateVotes.put(candidate, candidateVotes.get(candidate) + 1);
} else {
System.out.println("Invalid candidate.");
}
}
public List<String> getRanking() {
List<String> ranking = new ArrayList<>(candidateVotes.keySet());
Collections.sort(ranking, new Comparator<String>() {
@Override
public int compare(String c1, String c2) {
return candidateVotes.get(c2) - candidateVotes.get(c1);
}
});
return ranking;
}
}
```
在这个投票系统中,我们使用了一个Map来存储每个候选人的得票数,使用List来存储候选人的名字。在构造函数中,我们初始化每个候选人的得票数为0。然后,我们可以通过castVote方法来投票,它会检查该候选人是否存在,如果存在,就将他的得票数加1。最后,我们可以通过getRanking方法来获取按照得票数排名的候选人列表,其中我们使用了Java中的Collections.sort方法来进行排序。
您可以根据自己的需求进行修改和扩展。
阅读全文