如何获得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
提前谢谢。
答案 0 :(得分:3)
首先,您可以将min变量设置为1000000,然后迭代列表以查找min值,如下所示:
LatLng myLatLang = new LatLng(myLocation.getLatitude(), myLocation.getLongitude());
double minval = 1000000000000.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);
}
答案 1 :(得分:1)
在以下代码中
svn commit
如果距离为正,则任何东西都不会返回true,因此该语句将永远不会执行。
在进入for循环之前,您需要将double minval = -1.0;
if (somepositivedistance < minval ) { // do something
}
设置为大于最大可能距离(例如minval
)的值。