Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java从for循环中查找最小值_Java_For Loop_Minimum - Fatal编程技术网

Java从for循环中查找最小值

Java从for循环中查找最小值,java,for-loop,minimum,Java,For Loop,Minimum,我在寻找最小距离时遇到了一些问题,然后从最小距离开始,我在地图上画了两个圆 double distance = 0; double minDistance; convertedHotSpotGeomList = RetrieveHotSpotAsyncTask.convertedHotSpotGeom; for(int i = 0; i

我在寻找最小距离时遇到了一些问题,然后从最小距离开始,我在地图上画了两个圆

                    double distance = 0;
                    double minDistance;
                    convertedHotSpotGeomList = RetrieveHotSpotAsyncTask.convertedHotSpotGeom;
                    for(int i = 0; i < convertedHotSpotGeomList.size(); i++){
                        LatLng point1 = new LatLng(convertedHotSpotGeomList.get(i).getY(), convertedHotSpotGeomList.get(i).getX());                                 
                        LatLng point2 = new LatLng(convertedHotSpotGeomList.get(++i).getY(), convertedHotSpotGeomList.get(++i).getX());
                        distance = calculateHotSpot(point1, point2);
                        Log.i("DIST", String.valueOf(distance));
                        minDistance = distance;
                        if(minDistance < distance){
                            minDistance = distance;
                            Log.i("MIN", String.valueOf(minDistance));
                             CircleOptions circleOptions = new CircleOptions()
                                .center(point1)
                                .radius(1000)
                                .fillColor(Color.argb(95, 178, 30, 37))
                                .strokeColor(Color.TRANSPARENT);

                                googleBasemap.addCircle(circleOptions);

                                CircleOptions circleOptions1= new CircleOptions()
                                .center(point2)
                                .radius(1000)
                                .fillColor(Color.argb(95, 88, 130, 37))
                                .strokeColor(Color.TRANSPARENT);

                                googleBasemap.addCircle(circleOptions1);

                        }
                    }
双倍距离=0;
双重心态;
convertedHotSpotGeomList=检索HotspotSyncTask.convertedHotSpotGeom;
对于(int i=0;i
目前,我得到15,3,15,14作为DIST,但我不能得到Mindsist,因为它没有打印出来。有什么想法吗

提前感谢。

您可能需要:

    distance = calculateHotSpot(point1, point2);
    ....
    if(distance < minDistance){  
        minDistance = distance;
更新:

更完整的解决方案,因为上述问题并非唯一的问题:

double minDistance = Double.MAX_VALUE;
convertedHotSpotGeomList = RetrieveHotSpotAsyncTask.convertedHotSpotGeom;
LatLng[] minPoints = new LatLng[2]; // save the minimum points
for(int i = 0; i < convertedHotSpotGeomList.size(); i++){
    LatLng point1 = new LatLng(convertedHotSpotGeomList.get(i).getY(),   convertedHotSpotGeomList.get(i).getX());                                 
    LatLng point2 = new LatLng(convertedHotSpotGeomList.get(++i).getY(), convertedHotSpotGeomList.get(++i).getX());
    distance = calculateHotSpot(point1, point2);
    Log.i("DIST", String.valueOf(distance));
    if(distance < minDistance){
        minDistance = distance;
        Log.i("MIN", String.valueOf(minDistance));
        minPoints[0] = point1;
        minPoints[1] = point2;
    }
}
// we finish all the comparison, so we draw the circles now 
if(minPoints[0]!=null && minPoints[1] !=null){
    CircleOptions circleOptions = new CircleOptions()
        .center(minPoints[0])
        .radius(1000)
        .fillColor(Color.argb(95, 178, 30, 37))
        .strokeColor(Color.TRANSPARENT);
    CircleOptions circleOptions1= new CircleOptions()
        .center(minPoints[1])
        .radius(1000)
        .fillColor(Color.argb(95, 88, 130, 37))
        .strokeColor(Color.TRANSPARENT);

    googleBasemap.addCircle(circleOptions);
    googleBasemap.addCircle(circleOptions1);
}
double minDistance=double.MAX_值;
convertedHotSpotGeomList=检索HotspotSyncTask.convertedHotSpotGeom;
LatLng[]最小点=新LatLng[2];//保存最低分数
对于(int i=0;i
您可能需要:

    distance = calculateHotSpot(point1, point2);
    ....
    if(distance < minDistance){  
        minDistance = distance;
更新:

更完整的解决方案,因为上述问题并非唯一的问题:

double minDistance = Double.MAX_VALUE;
convertedHotSpotGeomList = RetrieveHotSpotAsyncTask.convertedHotSpotGeom;
LatLng[] minPoints = new LatLng[2]; // save the minimum points
for(int i = 0; i < convertedHotSpotGeomList.size(); i++){
    LatLng point1 = new LatLng(convertedHotSpotGeomList.get(i).getY(),   convertedHotSpotGeomList.get(i).getX());                                 
    LatLng point2 = new LatLng(convertedHotSpotGeomList.get(++i).getY(), convertedHotSpotGeomList.get(++i).getX());
    distance = calculateHotSpot(point1, point2);
    Log.i("DIST", String.valueOf(distance));
    if(distance < minDistance){
        minDistance = distance;
        Log.i("MIN", String.valueOf(minDistance));
        minPoints[0] = point1;
        minPoints[1] = point2;
    }
}
// we finish all the comparison, so we draw the circles now 
if(minPoints[0]!=null && minPoints[1] !=null){
    CircleOptions circleOptions = new CircleOptions()
        .center(minPoints[0])
        .radius(1000)
        .fillColor(Color.argb(95, 178, 30, 37))
        .strokeColor(Color.TRANSPARENT);
    CircleOptions circleOptions1= new CircleOptions()
        .center(minPoints[1])
        .radius(1000)
        .fillColor(Color.argb(95, 88, 130, 37))
        .strokeColor(Color.TRANSPARENT);

    googleBasemap.addCircle(circleOptions);
    googleBasemap.addCircle(circleOptions1);
}
double minDistance=double.MAX_值;
convertedHotSpotGeomList=检索HotspotSyncTask.convertedHotSpotGeom;
LatLng[]最小点=新LatLng[2];//保存最低分数
对于(int i=0;i
您的问题在于相邻的这两行:

                    minDistance = distance;
                    if(minDistance < distance){
minDistance=距离;
if(距离<距离){

因此,首先将MindDistance设置为distance的值。然后检查MindDistance是否小于distance。由于MindDistance永远不会小于您刚才设置的值,因此该代码块将永远不会计算。

您的问题在于相邻的两行:

                    minDistance = distance;
                    if(minDistance < distance){
minDistance=距离;
if(距离<距离){

因此,首先你要将MindDistance设置为距离值。然后你要检查MindDistance是否小于距离。因为它永远不会小于你刚才设置的值,所以这段代码永远不会计算。

我不明白,你在寻找最小的距离