使用for循环获取最小值及其索引

时间:2016-08-27 16:32:22

标签: java loops double

如何获得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

提前谢谢。

2 个答案:

答案 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)的值。