一:说明(1)使用floyd实现各个站点的计算记录和路径(2)站点获取和初始距离根据外部文件得到(3)结果以外部文件的形式存储(4)站点间转乘,认为初始值也为1(5)代码注释比较详细,如有疑问或者代码有,请联系我,谢谢(6)java中二维数据的定义: a: float[][] numthree; //定义一个float类型的2维数组 numthree=new float[5][5]; //为它分配5行5列的空间大小 numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1 numthree[1][0]=1.2f; // 2行1列=1.2 b: int[][] numseven=new int[][]{{10,20,30},{40,50},{60}}; //没什么好说的如果你在看不懂 那就别学了! c: list 二维数组: List<Object>[][]lists=new ArrayList[4][4]; 存放二维对象类型的list二维数组: List<Object[][]>[][] list=new ArrayList[4][4]; 存放二维数组的list: List<Object[][]> list=new ArrayList<Object[][]>()(7)数组的遍历a: int arr[][] = new int[][] { { 1 }, { 1, 2 }, { 1, 2, 3 } }; for (int i = 0; i < arr.length; i++) { int[] arr2 = arr[i]; for (int c = 0; c < arr2.length; c++) { System.out.print(arr2[c]); }b: arr[i][j]的方式c:java 遍历arrayList的四种方法package com.test;import java.util.ArrayList; import java.util.Iterator; import java.util.List;public class ArrayListDemo { public static void main(String args[]){ List<String> list = new ArrayList<String>(); list.add("luojiahui"); list.add("luojiafeng"); //方法1 Iterator it1 = list.iterator(); while(it1.hasNext()){ System.out.println(it1.next()); } //方法2 for(Iterator it2 = list.iterator();it2.hasNext();){ System.out.println(it2.next()); } //方法3 for(String tmp:list){ System.out.println(tmp); } //方法4 for(int i = 0;i < list.size(); i ++){ System.out.println(list.get(i)); } } }二:完整代码如下package edu.tju.cs;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;public class MetroFloyd {
private final int MAX_SIZE = 92;// 86+1 + 5个未开通的 数组的空间,可以再大一些 private int k = 0; private int Vertex = 0;// 站点个数,通过读取每一条记录得到 private int[] Line = new int[MAX_SIZE];// 和path一起记录路径的 private int[][] Path = new int[MAX_SIZE][MAX_SIZE];// 记录路径 private int[][] Dist = new int[MAX_SIZE][MAX_SIZE];//记录各个站点间距离的 private List<Integer> stationID = new ArrayList<Integer>();//得到站点编号 private Map<Integer,String> mapIDName = new HashMap<Integer,String>();// 站点编号和名称的对应关系