如何在Java中编写一个程序,返回给定值在整数数组中最后一次出现的索引位置



例如,给定一个整数数组:

{1,2,3,1,4}和整数值1

该方法将返回3作为给定值的最后一个索引位置。如果数组不包含给定的值,则该方法应返回-1。

我的代码:

public int lastIndexOf(int[] values, int value) {
for( int i=0; i< values.length ; i ++ )
if( values[ i ] == value)
return i;
return -1;
}

我得到的结果:

org.opentest4j.AssertionFailedError: 
Expected :5
Actual   :-1

预期结果:

@Test
public void testLastIndexOf() {
assertEquals(5, main.lastIndexOf(new int[]{1, 2, 3, 4, 5, 1}, 1));
assertEquals(-1, main.lastIndexOf(new int[]{2, 3, 3, 2, 4, 5, 4}, 1));
assertEquals(0, main.lastIndexOf(new int[1], 0));
assertEquals(4, main.lastIndexOf(new int[]{0, -1, 1, 8, 8, -1, 6, -2}, 8));
}

如果你想要最后一个索引,yoy可以按相反的顺序读取数组,从结束到开始,以便能够在第一个匹配时停止

public int lastIndexOf(int[] values, int value) {
for (int i = values.length - 1; i >= 0; i--) {
if (values[i] == value) {
return i;
}
}
return -1;
}

最新更新