为什么这个简单的Java代码没有通过这个测试?

时间:2014-03-16 23:43:49

标签: java arrays

代码似乎正确且直接向我发送,我正在使用基本的indexOf方法创建我创建的数组。

为什么这段代码不会出现:

public int indexOf(X s)
{        
    for (int i = 0; i <= arr.length-1; i++)
    {
        if (arr[i] == s)
        {
            return i;
        } 
    }        
    return -1;
}

通过此测试:

@Test
public void testIndexOf()
{
    BetterArray<String> b = new BetterArray<String>();

    for (int i = 0; i < 20; i++)
        b.add("str" + i);

    assertEquals(0, b.indexOf("str0"));
    assertEquals(19, b.indexOf("str19"));
    assertEquals(-1, b.indexOf("not found"));
}

1 个答案:

答案 0 :(得分:1)

因为比较字符串或任何其他对象与equals()的对等而不是==

  

==测试参考相等。

     

.equals()测试值的相等性。

了解详情:How do I compare strings in Java?