50,528
社区成员
发帖
与我相关
我的任务
分享
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) {
// 投票数
Integer sumVotes = 0;
// 竞选人
List<Campaigner> list = new ArrayList<>();
for (;;) {
System.out.print("请输入竞选人名字:");
Scanner scan = new Scanner(System.in);
String username = scan.nextLine();
System.out.print("请输入投给[" + username + "]的票数:");
Integer vote = Integer.valueOf(scan.nextLine());
sumVotes += vote;
Campaigner campaigner = new Campaigner(username, vote);
list.add(campaigner);
// 排序
sort(list);
// 输出结果
System.out.println("当前总票数:" + sumVotes);
int i = 1;
for (Campaigner c : list) {
Integer votes = c.getVotes();
String rate = String.format("%.2f", ((double) votes / sumVotes) * 100) + "%";
c.setRate(rate);
System.out.println("第" + i + "名:" + c);
i++;
}
}
}
public static void sort(List<Campaigner> list) {
Collections.sort(list, new Comparator<Campaigner>() {
@Override
public int compare(Campaigner c1, Campaigner c2) {
return c2.getVotes().compareTo(c1.getVotes());
}
});
}
public static class Campaigner {
private String username;
private Integer votes;
private String rate;
@Override
public String toString() {
return " [username=" + username + ", votes=" + votes + ", rate=" + rate + "]";
}
public Campaigner(String username, Integer votes) {
super();
this.username = username;
this.votes = votes;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Integer getVotes() {
return votes;
}
public void setVotes(Integer votes) {
this.votes = votes;
}
public String getRate() {
return rate;
}
public void setRate(String rate) {
this.rate = rate;
}
}
}