java - 如何检查arrayList的所有元素是否相同?
问题描述
我正在制作一个程序,该程序将根据谁是获胜者进行打印。(有关链接中任务的更多详细信息)https://open.kattis.com/problems/vote
我无法以正确的值打印出“没有赢家”。只有当我的 arrayList 中的所有元素都相同时,我才试图打印出“没有赢家”。前任。
arr = [10, 10, 10]
然后打印出来:
"no winner"
如何检查arrayList中的所有元素是否相等?
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class B {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int testCase = sc.nextInt();
for (int i = 0; i < testCase; i++ ) {
int candidate = sc.nextInt();
int maximum = 0;
int winner = 0;
boolean tie = false;
ArrayList<Integer> votes = new ArrayList<>();
for (int j = 0; j < candidate; j++) {
int nVotes = sc.nextInt();
votes.add(nVotes);
}
int imax = votes.indexOf(Collections.max(votes));
int max = Collections.max(votes); // max winner
int in = votes.indexOf(votes);
int index = imax + 1;
int sum = 0;
for(int o = 0; o < votes.size(); o++)
{
sum = sum + votes.get(o);
if (votes.get(o) == votes.get(o) ) {
tie = true;
}
}
if (max > (sum / 2)) {
System.out.println("majority winner " + index);
}
else if (max < (sum / 2)) {
System.out.println("minority winner " + index);
}
else if (votes.get(i) == votes.get(i)) {
System.out.println("no winner");
}
}
}
}
解决方案
尝试使用您所做的将 tie case 设置为 true,例如:
else if (tie == true) {
System.out.println("no winner");
}
推荐阅读
- ruby-on-rails - Ruby on Rails 语法错误,意外 '\n',期待 &。或 :: 或 '[' 或 '.'
- c# - 如何切换csv文件的列(c#)
- ios - 隐藏标签栏上的覆盖按钮
- flutter - 当状态改变时,如何强制为 futurebuilder 立即重绘?
- javascript - 在反应中获取数据
- php - 使用 php 填充 JS 数组变量
- ios - 如何将 swift CLlocation 纬度和经度传递给 wkwebview ajax 函数或控制器函数
- firebase - Xamarin.ios 本机 Firebase 推送通知
- scala - 用当前行两列之间的列值计算 DataFrame 中的行数。添加为列
- javascript - 如何根据 JavaScript 中的值检查对象是否在数组中?