打印出一个数组列表,并选择一个索引?

时间:2013-12-12 01:15:45

标签: java arraylist

possibleRoutes的类型为HashSet<ArrayList<Integer>>possibleRoutes中的每个数组列表都包含按行程顺序相互连接的管道或火车站的ID。

for( ArrayList<Integer> route : possibleRoutes) {

        ArrayList<Double> routesDistances = new ArrayList<Double>(); // list of the total distances of the routes

        double distance = 0;

        for (int i=1; i < route.size()-1; i++){
            double x = Math.abs(stationLocations.get(route.get(i)).getX() - stationLocations.get(route.get(i-1)).getX());
            double y = Math.abs(stationLocations.get(route.get(i)).getY() - stationLocations.get(route.get(i-1)).getY());
            double d = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));

            distance += d;;
        }

        routesDistances.add(distance);

        System.out.print(routesDistances);

    }

这是迄今为止的输出:

[2163.9082950470897][3494.746239392733][2099.5269818921306][2075.3141294013]

我想打印出列表作为数组列表,我可以从列表中选择一个索引,例如routesDistances.get(0)和第一个索引。你是如何做到这样的,列表将是ArrayList<Double>的类型,并返回为:

[2163.9082950470897, 3494.746239392733, 2099.5269818921306, 2075.3141294013]

2 个答案:

答案 0 :(得分:1)

刚刚放

ArrayList<Double> routesDistances = new ArrayList<Double>();
  

for( ArrayList<Integer> route : possibleRoutes)

循环后你的 routesDistances 会是这样的:[2163.9082950470897,3494.746239392733,2099.5269818921306,2075.3141294013]

然后一个循环中的输出就像这样写:

for(Double d:routesDistances){
    System.out.println(d);
}

答案 1 :(得分:0)

  

想要将列表打印为数组列表,我可以在其中选择   列表中的索引,例如routesDistances.get(0)和第一个索引   索引。

正如@IlyaBursov建议的那样,您可以在routesDistances循环之前声明for

并且,要从特定索引打印,您可以使用subList(fstIndex, lstIndex)函数,如下所示:

 System.out.print(routesDistances.subList(index, aList.size()));