Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 为列车线上的所有车站创建距离地图_Java - Fatal编程技术网

Java 为列车线上的所有车站创建距离地图

Java 为列车线上的所有车站创建距离地图,java,Java,我正在复习一门编程入门考试,我有一道题,这道题来自上一篇试卷,我有点被卡住了 问题是: 编写一个将双数组作为参数的方法,该参数的值表示轨道上火车站的位置。该方法应返回一个二维数组,其中包含参数中每对桩号之间的距离。距离数组中的每对桩号只能有一个条目(即,不要使用矩形数组) 我有一个问题的解决方案,但我无法得到最后一点,即每一对应该只有一个条目。我曾考虑过创建一个查找表来查找所有条目,以查看两个站点的距离,但由于距离已经计算出来,因此阵列中后面的站点将有许多空单元格 这是我目前的解决方案 //Se

我正在复习一门编程入门考试,我有一道题,这道题来自上一篇试卷,我有点被卡住了

问题是:

编写一个将双数组作为参数的方法,该参数的值表示轨道上火车站的位置。该方法应返回一个二维数组,其中包含参数中每对桩号之间的距离。距离数组中的每对桩号只能有一个条目(即,不要使用矩形数组)

我有一个问题的解决方案,但我无法得到最后一点,即每一对应该只有一个条目。我曾考虑过创建一个查找表来查找所有条目,以查看两个站点的距离,但由于距离已经计算出来,因此阵列中后面的站点将有许多空单元格

这是我目前的解决方案

//Set of locations on the train line
private static double[] stations = {0.0, 2.0, 3.0, 5.0};

//Method to take the array of doubles and create distance map
public static double[][] getDistances(double[] st){
    double[][] distanceMap = new double[st.length][st.length-1];
    int x;
    for(int i=0; i<st.length; i++){
        x=0;
        for(int j=0; j<st.length; j++){
            if(j != i){
                distanceMap[i][x] = Math.abs(st[i]-st[j]); 
                x++;
            }
        }
    }
    return distanceMap;
}

//Main method to get the distance map then loop over results
public static void main(String[] args){
    double[][] arrayMatrix = getDistances(stations);

    for(int i=0; i<arrayMatrix.length; i++){
        for(int j=0; j<arrayMatrix[0].length; j++){
            System.out.print(arrayMatrix[i][j]+"  ");
        }
        System.out.println("");
    }

}
//列车线路上的一组位置
专用静态双[]站={0.0,2.0,3.0,5.0};
//方法获取双精度数组并创建距离贴图
公共静态双[][]getDistances(双[]st){
double[][]距离映射=新的double[st.length][st.length-1];
int x;

对于(int i=0;i语句所说的是“即,不要使用矩形数组”。其思想是每对只存储一个值。例如,如果有对(a,b)和a+1@TrueWheel,我想这个请求的目的是看看您如何处理动态分配的数组。我从来没有意识到您可以创建三角形数组。我在我的问题到底是什么。
//Set of locations on the train line
private static double[] stations = {0.0, 2.0, 3.0, 5.0};

//Method to take the array of doubles and create distance map
public static double[][] getDistances(double[] st){
    double[][] distanceMap = new double[st.length-1][];
    int size = st.length-1;

    for(int i=0; i<distanceMap.length; i++){
        distanceMap[i] = new double[size];
        size--;
    }

    ArrayList<String> lut = new ArrayList<String>();

    int x;
    for(int i=0; i<distanceMap.length; i++){
        x=0;
        for(int j=0; j<st.length; j++){
            if(j != i && !lut.contains(i+"/"+j)){
                distanceMap[i][x] = Math.abs(st[i]-st[j]); 
                lut.add(i+"/"+j);
                lut.add(j+"/"+i);
                x++;
            }
        }
    }
    return distanceMap;
}

//Main method to get the distance map then loop over results
public static void main(String[] args){
    double[][] arrayMatrix = getDistances(stations);

    for(int i=0; i<arrayMatrix.length; i++){
        for(int j=0; j<arrayMatrix[i].length; j++){
            System.out.print(arrayMatrix[i][j]+"  ");
        }
        System.out.println("");
    }

}