java使用for循环获取最小值及其索引
如何获得for循环中的最小值及其索引:
更新:这是我在使用@Sakalya的答案后尝试的
LatLng myLatLang = new LatLng(myLocation.getLatitude(),myLocation.getLongitude());
double minval = -1.0;
int minIndex = 0;
for (int i = 0; i < stationsCoord.size(); i++) {
double distance = CalculationByDistance(myLatLang,stationsCoord.get(i));
if(distance < minval){
minval = distance;
minIndex = i;
}
Log.i("distance " , String.valueOf(distance));
System.out.println("min=" +minval+ "index="+minIndex);
}
//i'm looking for the min value of 'distance' + the index 'i'
我总是这样:System.out: min=-1.0index=0
先谢谢你
# 1 楼答案
在下面的代码中
如果距离为正,则不会返回true,因此该语句将永远不会执行
在进入for循环之前,需要将
minval
设置为大于最大可能距离的值(例如Double.MAX_VALUE
)# 2 楼答案
首先,您可以将最小变量设置为1000000,然后迭代列表以查找最小值,如下所示: