【发布时间】:2020-06-30 00:46:29
【问题描述】:
我有一个数组{ 8, 4, 3, 2, 5, 6, 1, 7 },我希望它返回数组中最小值的索引、数组中下一个最小值的索引等等。
我有这个代码;
private static int getSlotPosition(int[] iArray) {
int lowestValue;
lowestValue = iArray[0];
int slot = 0;
for (int i = 0; i < iArray.length; i++) {
if (iArray[i] < lowestValue) {
lowestValue = iArray[i];
slot = i;
}
}
return slot;
}
上面的方法是在for循环中调用的,每次调用都会改变数组的排列方式。
所以我希望在每次调用该方法(假设位置保持不变)之后返回的输出(即索引)是这样的;
- 第一次调用后返回的索引是6,cos 1是最小值
- 第二次调用后返回的索引是 3,cos 2 是下一个最小值
- 第二次调用后返回的索引是 2,cos 3 是下一个最小值,依此类推
请有人帮帮我。谢谢。
【问题讨论】:
-
你无法指定你想要哪个“最低”;每次你调用这个方法你都会得到“1”。
-
您好@ElliottFrisch,感谢您的评论,也许我可以将第二个参数传递给该方法并使用它来始终确定最低增加值的索引,但是我该如何实现呢?
-
你的数组会不会有重复值,数组中值的范围是多少?您可以从列表中删除元素。
-
不,数组不会有重复值。数组的大小可以根据传入此方法的数组而改变。
标签: java arrays for-loop indexing