Java中如何根据票数数组打印得票最高者的姓名而非票数
最简单的解决方式:用索引直接关联姓名数组
兄弟,我太懂你这种眼看要解决却卡在最后一步的憋屈感了!既然你已经通过for循环找到了最高票数对应的数组位置(也就是索引),那解决办法其实超简单——用这个索引直接访问对应的候选人姓名数组就行!
核心逻辑
假设你现在有两个平行数组:
int[] Votes:存储每个候选人的票数(你已经在用这个数组)String[] candidateNames:存储候选人姓名,和Votes数组的索引完全对应(比如candidateNames[0]对应Votes[0]的票数)
你已经通过循环拿到了最高票数的索引maxIndex,那直接用这个索引去取姓名数组里的元素就行,它本身就是字符串,根本不需要额外转换!
代码示例
// 示例候选人姓名数组,和Votes索引一一对应 String[] candidateNames = {"Alice", "Bob", "Charlie"}; int[] Votes = {12, 25, 18}; int maxVotes = 0; int maxIndex = 0; // 你已经写好的找最高票数索引的循环 for (int i = 0; i < Votes.length; i++) { if (Votes[i] > maxVotes) { maxVotes = Votes[i]; maxIndex = i; // 这里拿到了最高票数对应的索引 } } // 直接打印对应索引的姓名! System.out.println("得票最高者:" + candidateNames[maxIndex]);
为什么之前可能卡壳?
如果你之前没有单独的姓名数组,那得先把候选人姓名和票数对应存储起来(最省事的就是用平行数组)。要是你之前尝试转换字符串却失败,大概率是没找对关联方式——其实根本不需要转换,因为姓名数组里的元素本来就是字符串,直接拿就行。
额外提醒(可选)
如果存在多个候选人并列最高票的情况,上面的代码只会输出第一个遇到的最高票候选人。如果需要输出所有并列者,只需要在循环后再加一个遍历,把所有票数等于maxVotes的候选人姓名都打印出来就行,但这属于进阶需求,先解决你当前的核心问题优先!
内容的提问来源于stack exchange,提问作者Tetroy64
相关产品推荐
相关产品推荐

