当前位置: 首页 > 知识库问答 >
问题:

如何连续迭代两个数组?

钮博裕
2023-03-14

我有两个双数组:

double[] LatArr = {28.5700,28.4700,28.29};
double[] LonArr = {77.3200,77.0300,77.62};

我的循环结构如下所示:

for(int i=0;i<count;i++)
            {
                for(int j=0;j<count;j++)
                {
                    Double lat1;
                    Double lon1;
                    Double lat2;
                    Double lon2;
                    lat1 = LatArr[i];
                    lon1 = LonArr[j];
                    //System.out.println(LatLon[i][j]);
                    /*System.out.println("<< BREAK >>");
                    System.out.println(lat1);
                    System.out.println(lon1);
                    */
                    lat2=lat1;
                    //lat1 = null;
                    lon2=lon1;
                    //lon1 = null;
                    i++;

                    if(lat1!=null){
                    GeoPoint gp1 = new GeoPoint((int)(lat1 * 1E6), (int)(lon1 * 1E6)); //
                    GeoPoint gp2 = new GeoPoint((int)(lat2 * 1E6), (int)(lon2 * 1E6)); //
                    System.out.println("<< LAT1 >>");
                    System.out.println(lat1);
                    System.out.println(lon1);
                    System.out.println("<< LAT2 >>");
                    System.out.println(lat2);
                    System.out.println(lon2);

                    Point p11 = new Point();
                    Point p22 = new Point();

                    Path mypath = new Path();
                    projection.toPixels(gp1, p11);
                    projection.toPixels(gp2, p22);
                    mypath.moveTo(p22.x, p22.y);// *
                    mypath.lineTo(p11.x, p11.y);// *

                    canvas.drawPath(mypath, mPaint);
                    }
                }
            }

我要做的是连续获取项目LatArr[0]和LonArr[0]<这样我就可以在lat1中使用LatArr[0],在lon1中使用LonArr[0]。此外,LatArr[1]应位于lat2,LonArr[1]应位于lon2

但此代码获取LatArr[0]。。[1] 。。和LonArr[0]。。[1] 。。两次每个元素打印两次

任何人都请纠正我的错误,我完全不希望按照这种方法在地图上画多个点。在所有这些代码中,将依次映射两个地质点(每个地质点都有纬度

共有3个答案

杨超
2023-03-14

每次使用相同的索引,以便从两个数组中获取相同的索引元素

for(int i=0;i<count;i++){
  Double lat1;
  Double lon1;
  Double lat2;
  Double lon2;
  lat1 = LatArr[i];//  i th element from lat arr
  lon1 = LonArr[i];// i th element from lon arr
  ...
}
查宜民
2023-03-14

我不明白,为什么你有两个循环,试试这个:

for(int i=0;i<count-1;i++)
        {

                Double lat1;
                Double lon1;
                Double lat2;
                Double lon2;
                lat1 = LatArr[i];
                lon1 = LonArr[i];

                /*System.out.println("<< BREAK >>");
                System.out.println(lat1);
                System.out.println(lon1);
                */
                lat2=latArr[i+1];
                //lat1 = null;
                lon2=lonArr[i+1];
                //lon1 = null;


                if(lat1!=null){
                GeoPoint gp1 = new GeoPoint((int)(lat1 * 1E6), (int)(lon1 * 1E6)); //
                GeoPoint gp2 = new GeoPoint((int)(lat2 * 1E6), (int)(lon2 * 1E6)); //
                System.out.println("<< LAT1 >>");
                System.out.println(lat1);
                System.out.println(lon1);
                System.out.println("<< LAT2 >>");
                System.out.println(lat2);
                System.out.println(lon2);

                Point p11 = new Point();
                Point p22 = new Point();

                Path mypath = new Path();
                projection.toPixels(gp1, p11);
                projection.toPixels(gp2, p22);
                mypath.moveTo(p22.x, p22.y);// *
                mypath.lineTo(p11.x, p11.y);// *

                canvas.drawPath(mypath, mPaint);
                }

        }
傅振濂
2023-03-14

如果两个数组的长度相同,则只使用一个循环,而不是两个循环,因此请按以下方式更改代码:

for(int j=0;j<count;j++)
                    {
                        Double lat1;
                        Double lon1;
                        Double lat2;
                        Double lon2;
                        lat1 = LatArr[j];
                        lon1 = LonArr[j];
                        lat2=lat1;
                        //lat1 = null;
                        lon2=lon1;
                        //lon1 = null;
                       if(lat1!=null){
                        GeoPoint gp1 = new GeoPoint((int)(lat1 * 1E6), (int)(lon1 * 1E6)); //
                        GeoPoint gp2 = new GeoPoint((int)(lat2 * 1E6), (int)(lon2 * 1E6)); //
                        System.out.println("<< LAT1 >>");
                        System.out.println(lat1);
                        System.out.println(lon1);
                        System.out.println("<< LAT2 >>");
                        System.out.println(lat2);
                        System.out.println(lon2);

                        Point p11 = new Point();
                        Point p22 = new Point();

                        Path mypath = new Path();
                        projection.toPixels(gp1, p11);
                        projection.toPixels(gp2, p22);
                        mypath.moveTo(p22.x, p22.y);// *
                        mypath.lineTo(p11.x, p11.y);// *

                        canvas.drawPath(mypath, mPaint);
                        }
                    }
                }
 类似资料:
  • 我想在HashMap中搜索重复项。目前这是我的HashMap:

  • 问题内容: 我有一个大的数据框(几百万行)。 我希望能够对它进行分组操作,而只是按行的任意连续(最好大小相等)的子集进行分组,而不是使用各个行的任何特定属性来确定它们要进入的组。 用例:我想通过IPython中的并行映射将函数应用于每一行。哪行进入哪个后端引擎都没有关系,因为该函数一次基于一行来计算结果。(至少在概念上;实际上是矢量化的。) 我想出了这样的东西: 但这似乎很漫长,并且不能保证大小相

  • 问题内容: 我刚遇到以下问题。 这是我第一次看到这个。它是如何工作的? 问题答案: 它只是编写两个不同的代码块以隐藏局部变量。 从问题“ Java中的匿名代码块”的答案: 块限制变量范围。 但是,实际上,如果您发现自己使用了这样的代码块,则可能是您要将其重构为方法的信号。

  • 你是一个电视游戏节目的参与者,这给了你赢得奖金的机会。在游戏中,你会看到一系列框,每个框都包含一个允许你看到的正整数值。你有机会选择任何数量的盒子。您的总奖金是您选择包含的所有盒子的总和。这个游戏只有一个限制:如果你选择了两个连续的盒子,你不允许在总数中添加任何后续的盒子,而你的奖品是截至该点的累计金额。你的目标是最大化你的奖金。 给定一个正整数数组,代表游戏中呈现给你的每个盒子的值,返回你能赢得

  • 我需要使用FFMPEG随机选择时间(例如0:10),并将两个连续的帧保存为PNG。 产出: 问题 如何确定下一帧?帧率120/1意味着每秒120帧? 编辑 它能保证下一帧吗?还有其他办法吗?

  • 问题内容: 是否有一种简短的方法可以在Python中连续两次或更多次调用函数?例如: 也许像: 问题答案: 我会: 的是其值为你不关心的变量约定。 您可能还会看到有人写: 但是,这样做会稍微贵一些,因为它会创建一个包含每次调用(即使是)的返回值的列表,然后将结果列表丢弃。我不建议使用,除非你 正在 使用的返回值的列表。