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]
答案 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()));