不返回学生的索引,总是返回-1(数组)

时间:2015-05-23 21:17:23

标签: java arrays object

我第一次学习java是因为我对编程很感兴趣,而且我正在研究这个程序有问题。

此代码用于返回相关代理的索引,如果未找到则返回-1,但它会一直返回-1。

private Agent [] agents; //an array of Agent

public int findAgentLocation (String name)
 {
      for (int index = 0; index < agents.length; index++)
    {
      if (agents[index]).equals(name)){
        return index;
      }
    }
    return -1;
   }
  }

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

执行此操作时:if (agents[index].equals(name)){,您实际上是在比较两种不同的数据类型(&#39;代理&#39;和#39;字符串&#39;)。 Java将进行对象比较,因此它们将永远不会相等。所以你最终会回来&#34; -1&#34;总是

假设Agent类有一个名称变量,你需要做这样的事情:

if (agents[index].getName().equals(name)){

答案 1 :(得分:0)

您可能想在代理

中检查您的等号(字符串)