You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:24:52