gpt4 book ai didi

java - 查找数组项索引时出现问题

转载 作者:行者123 更新时间:2023-12-02 04:47:25 24 4
gpt4 key购买 nike

我正在为一项作业编写一个程序,其中有一个候选人列表(用于选举),并且我正在通过编写一个方法来练习插入,以在数组中查找特定的人,并在其之前插入一个新人。

public static void insertCandidate(Candidate[]list , String find, String  candidate, int votes) 
{
int location = 0;
for (int i =0; i < list.length; i ++){
String temp = list[i].returnName();
if (temp.equals(candidate)){
location = i;

}
}


for (int index = list.length - 1; index > location; index --){
list[index] = list[index - 1];
}
list[location ] = new Candidate(candidate, votes);


}
}

我遇到的问题是在第一部分的 for 循环中。我希望整数位置是所选候选者所在的索引,但由于位置是在 for 循环内设置的,因此在第二个 for 循环中其值保持为 0。结果,我想要插入的人被插入到列表的最顶部,而不是我想要的人的前面。

我不知道如何解决这个问题,所以我们将不胜感激。

最佳答案

在检查候选名称的第一个循环中,您可以通过 returnName() 返回一个字符串来执行此操作,而不是创建一个全新的对象:

if(list[i].returnName().equals(candidate))
{
location = i;//saves answer
break;//gets out of loop
{

我不明白为什么你会得到相同的位置值,除非你放入完全相同的人并且他们恰好位于数组的前面。该逻辑应该有效,并且我自己在我的类中使用了相同的代码来查找索引,不是使用字符串评估,而是使用相同的逻辑。事实上,大约三周前我实际上做了一个非常相似的作业。

此外,如果列表中没有找到位置,我建议您将位置设置为 -1,因为列表没有负索引。

关于java - 查找数组项索引时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29551809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com