import java.util.HashMap; import java.util.HashMap; import java.util.LinkedHashSet; import java.util.Map; public class Station { private String name; //地铁站名称 public Station prev; //前一个站 public Station next; //后一个站 private Map<Station,LinkedHashSet<Station>> orderSetMap = new HashMap<Station,LinkedHashSet<Station>>(); public Station (String name){ this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } public LinkedHashSet<Station> getAllPassedStations(Station station) { if(orderSetMap.get(station) == null){ LinkedHashSet<Station> set = new LinkedHashSet<Station>(); set.add(this); orderSetMap.put(station, set); } return orderSetMap.get(station); } public Map<Station, LinkedHashSet<Station>> getOrderSetMap() { return orderSetMap; } @Override public boolean equals(Object obj) { if(this == obj){ return true; } else if(obj instanceof Station){ Station s = (Station) obj; if(s.getName().equals(this.getName())){ return true; } else { return false; } } else { return false; } } @Override public int hashCode() { return this.getName().hashCode(); } }
import java.util.*; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class DataBuilder { public static HashSet<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合 public static int totalStaion = 0;//总的站点数量 //读取文件 public static void readFile(String fileName) throws IOException{ FileInputStream inputStream = new FileInputStream(fileName); // FileInputStream inputStream = new FileInputStream("station.txt"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String str = null; while((str = bufferedReader.readLine()) != null) { List<Station> line = new ArrayList<Station>(); String[] lineInformations = str.split(" "); for(String s : lineInformations){ line.add(new Station(s)); } line.remove(0); for(int i =0;i<line.size();i++){ if(i<line.size()-1){ line.get(i).next = line.get(i+1); line.get(i+1).prev = line.get(i); } } lineSet.add(line); totalStaion+=line.size(); } inputStream.close(); bufferedReader.close(); } }
import java.util.*; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; public class StationIncludeLineName { public static HashSet<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合 public static int totalStaion = 0;//总的站点数量 //读取文件 public static void readFile(String fileName) throws IOException{ FileInputStream inputStream = new FileInputStream(fileName); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String str = null; while((str = bufferedReader.readLine()) != null) { List<Station> line = new ArrayList<Station>(); String[] lineInformations = str.split(" "); for(String s : lineInformations){ line.add(new Station(s)); } for(int i =0;i<line.size();i++){ if(i<line.size()-1){ line.get(i).next = line.get(i+1); line.get(i+1).prev = line.get(i); } } lineSet.add(line); totalStaion+=line.size(); } inputStream.close(); bufferedReader.close(); } }
import java.io.*; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; public class Subway { private List<Station> allPassedStation = new ArrayList<Station>();//记录已经分析过的站点 String allStations = ""; //计算从s1站到s2站的最短经过路径, 并输出文件 public String Dijkstra(Station startStation, Station endStation) { //长度相等级找完了全部的路径 ,输出文件 if (allPassedStation.size() == DataBuilder.totalStaion) { allStations+="找到目标站点:" + endStation.getName() + ",共经过" + (startStation.getAllPassedStations(endStation).size() - 1) + "站"+"\n"; for (Station station : startStation.getAllPassedStations(endStation)) { allStations+=station.getName() + " "; } return allStations; } if (!allPassedStation.contains(startStation)) { allPassedStation.add(startStation); } //起点站OrderSetMap为空 if (startStation.getOrderSetMap().isEmpty()) { List<Station> Linkedstations = getAllLinkedStations(startStation); for (Station s : Linkedstations) { startStation.getAllPassedStations(s).add(s); } } Station parent = getShortestPath(startStation); if (parent == endStation) { allStations+="找到目标站点:" + endStation + ",共经过" + (startStation.getAllPassedStations(endStation).size() - 1) + "站"+"\n"; for (Station station : startStation.getAllPassedStations(endStation)) { allStations+=station.getName() + " "; } return allStations; } for (Station child : getAllLinkedStations(parent)) { if (allPassedStation.contains(child)) { continue; } int shortestPath = (startStation.getAllPassedStations(parent).size() - 1) + 1;//前面这个1表示计算路径需要去除自身站点,后面这个1表示增加了1站距离 if (startStation.getAllPassedStations(child).contains(child)) { if ((startStation.getAllPassedStations(child).size() - 1) > shortestPath) { startStation.getAllPassedStations(child).clear(); startStation.getAllPassedStations(child).addAll(startStation.getAllPassedStations(parent)); startStation.getAllPassedStations(child).add(child); } } else { //如果s1还没有计算过到此child的经过距离 startStation.getAllPassedStations(child).addAll(startStation.getAllPassedStations(parent)); startStation.getAllPassedStations(child).add(child); } } allPassedStation.add(parent); Dijkstra(startStation, endStation);//重复计算,往外面站点扩展 return allStations; } //station到各个站的最短距离 private Station getShortestPath(Station station) { int minPatn = Integer.MAX_VALUE; Station rets = null; for (Station s : station.getOrderSetMap().keySet()) { if (allPassedStation.contains(s)) { continue; } LinkedHashSet<Station> set = station.getAllPassedStations(s);//参数station到s所经过的所有站点的集合 if (set.size() < minPatn) { minPatn = set.size(); rets = s; } } return rets; } //获取参数station直接相连的所有站,包括交叉线上面的站 private List<Station> getAllLinkedStations(Station station) { List<Station> linkedStaions = new ArrayList<Station>(); for (List<Station> line : DataBuilder.lineSet) { if (line.contains(station)) {//如果某一条线包含了此站 Station s = line.get(line.indexOf(station)); if (s.prev != null) { linkedStaions.add(s.prev); } if (s.next != null) { linkedStaions.add(s.next); } } } return linkedStaions; } //文件写入 public static void writeFileString(String strings, String writeFileName) { File fileDir = new File(writeFileName); if(!fileDir.isFile()){ try { fileDir.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { FileWriter fw = new FileWriter(fileDir); fw.write(strings); fw.flush(); fw.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) throws IOException { String map = "-map \\S+ "; String line = "-a \\S+ -map \\S+ -o \\S+ "; String path = "-b \\S+ \\S+ -map \\S+ -o \\S+ "; String arge = ""; for (String i : args) { arge += i + " "; } if (arge.matches(map)) { String readFile = args[1]; StationIncludeLineName.readFile(readFile); for (List<Station> linename : StationIncludeLineName.lineSet) { for (int i = 0; i < linename.size(); i++) { System.out.print(linename.get(i).getName() + " "); } System.out.println(); } } else if (arge.matches(line)) { String lineName = args[1]; String readFile = args[3]; String writeFile = args[5]; StationIncludeLineName.readFile(readFile); Station station = new Station(lineName); String allStations = ""; int flag = 0;//判断是否存在该路线 for (List<Station> linename : StationIncludeLineName.lineSet) { if (linename.contains(station)) { allStations+=linename.get(0).getName() + "包括的站点:"+"\n"; for (int i = 1; i < linename.size(); i++) { allStations+=linename.get(i).getName() + " "; } flag=1; } } if(flag==0){ System.out.println("该路线不存在"); } else{ writeFileString(allStations, writeFile); } } else if (arge.matches(path)) { String start = args[1]; String end = args[2]; String readFile = args[4]; String writeFile = args[6]; DataBuilder.readFile(readFile); Subway sw = new Subway(); String allStations = sw.Dijkstra(new Station(start), new Station(end)); writeFileString(allStations, writeFile); }else{ System.out.println("输入参数有误"); } } }
import java.util.*; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.lang.Thread.State; public class test { // public static List<Station> line1 = new ArrayList<Station>(); // public static List<Station> line2 = new ArrayList<Station>(); // public static List<Station> line4 = new ArrayList<Station>(); // public static List<Station> line5 = new ArrayList<Station>(); // public static List<Station> line6 = new ArrayList<Station>(); // public static List<Station> line7 = new ArrayList<Station>(); // public static List<Station> line8 = new ArrayList<Station>(); // public static List<Station> line8S = new ArrayList<Station>(); // public static List<Station> line9 = new ArrayList<Station>(); // public static List<Station> line10 = new ArrayList<Station>(); // public static List<Station> linexinjichang = new ArrayList<Station>(); // public static List<Station> line13 = new ArrayList<Station>(); // public static List<Station> line14W = new ArrayList<Station>(); // public static List<Station> line14E = new ArrayList<Station>(); // public static List<Station> line15 = new ArrayList<Station>(); // public static List<Station> line16 = new ArrayList<Station>(); // public static List<Station> linebatong = new ArrayList<Station>(); // public static List<Station> linechangping = new ArrayList<Station>(); // public static List<Station> lineyizhuang = new ArrayList<Station>(); // public static List<Station> linefangshan = new ArrayList<Station>(); // public static List<Station> linejichang = new ArrayList<Station>(); // public static List<Station> lineS1 = new ArrayList<Station>(); // public static List<Station> lineyanfang = new ArrayList<Station>(); // public static List<Station> linexijiao = new ArrayList<Station>(); public static HashSet<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合 public static int totalStaion = 0;//总的站点数量 static { } public static void main(String[] args) throws IOException{ FileInputStream inputStream = new FileInputStream("C:\\Users\\1412773213\\Desktop\\BeijingSubwayTransfer-master\\src\\station2.txt"); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); String str = null; while((str = bufferedReader.readLine()) != null) { List<Station> line = new ArrayList<Station>(); String[] lineInformations = str.split(" "); for(String s : lineInformations){ line.add(new Station(s)); System.out.println(s); } for(int i =0;i<line.size();i++){ if(i<line.size()-1){ line.get(i).next = line.get(i+1); line.get(i+1).prev = line.get(i); } } lineSet.add(line); // System.out.println(line.get(line.size()-1).getName()); totalStaion+=line.size(); } //close inputStream.close(); bufferedReader.close(); // System.out.println(totalStaion); // List<Station> a = lineSet.iterator().next(); // System.out.println(a.get(0).getName()); } }
import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; public class test2 { public static List<Station> line1 = new ArrayList<Station>(); public static List<Station> line2 = new ArrayList<Station>(); public static List<Station> line4 = new ArrayList<Station>(); public static List<Station> line5 = new ArrayList<Station>(); public static List<Station> line6 = new ArrayList<Station>(); public static List<Station> line7 = new ArrayList<Station>(); public static List<Station> line8 = new ArrayList<Station>(); public static List<Station> line8S = new ArrayList<Station>(); public static List<Station> line9 = new ArrayList<Station>(); public static List<Station> line10 = new ArrayList<Station>(); public static List<Station> linexinjichang = new ArrayList<Station>(); public static List<Station> line13 = new ArrayList<Station>(); public static List<Station> line14W = new ArrayList<Station>(); public static List<Station> line14E = new ArrayList<Station>(); public static List<Station> line15 = new ArrayList<Station>(); public static List<Station> line16 = new ArrayList<Station>(); public static List<Station> linebatong = new ArrayList<Station>(); public static List<Station> linechangping = new ArrayList<Station>(); public static List<Station> lineyizhuang = new ArrayList<Station>(); public static List<Station> linefangshan = new ArrayList<Station>(); public static List<Station> linejichang = new ArrayList<Station>(); public static List<Station> lineS1 = new ArrayList<Station>(); public static List<Station> lineyanfang = new ArrayList<Station>(); public static List<Station> linexijiao = new ArrayList<Station>(); public static Set<List<Station>> lineSet = new HashSet<List<Station>>();//所有线集合 public static int totalStaion = 0;//总的站点数量 static { //1号线 String line1Str = "苹果园 古城 八角游乐园 八宝山 玉泉路 五棵松 万寿路 公主坟 军事博物馆 木樨地\n" + "南礼士路 复兴门 西单 *西 *东 王府井 东单 建国门 永安里 国贸 大望路 四惠 四惠东"; String[] line1Arr = line1Str.split(" "); for(String s : line1Arr){ line1.add(new Station(s)); } for(int i =0;i<line1.size();i++){ if(i<line1.size()-1){ line1.get(i).next = line1.get(i+1); line1.get(i+1).prev = line1.get(i); } } /*******************************************************************************/ //2号线 String line2Str = "西直门 车公庄 阜成门 复兴门 长椿街 宣武门 和平门 前门 崇文门 北京站 建国门\n" + "朝阳门 东四十条 东直门 雍和宫 安定门 鼓楼大街 积水潭 西直门"; String[] line2Arr = line2Str.split(" "); for(String s : line2Arr){ line2.add(new Station(s)); } for(int i =0;i<line2.size();i++){ if(i<line2.size()-1){ line2.get(i).next = line2.get(i+1); line2.get(i+1).prev = line2.get(i); } } /*******************************************************************************/ //4号线大兴线 String line4Str = "天宫院 生物医药基地 义和庄 黄村火车站 黄村西大街 清源路 枣园 高米店南\n" + "高米店北 西红门 新宫 公益西桥 角门西 马家堡 北京南站 陶然亭 菜市口 宣武门 西单 灵境胡同 西四\n" + "平安里 新街口 西直门 动物园 国家图书馆 魏公村 人民大学 海淀黄庄 中关村 北京大学东门 圆明园 西苑 北宫门 安河桥北\n" ; String[] line4Arr = line4Str.split(" "); for(String s : line4Arr){ line4.add(new Station(s)); } for(int i =0;i<line4.size();i++){ if(i<line4.size()-1){ line4.get(i).next = line4.get(i+1); line4.get(i+1).prev = line4.get(i); } } /*******************************************************************************/ //5号线 String line5Str = "宋家庄 刘家窑 蒲黄榆 天坛东门 磁器口 崇文门 东单 灯市口 东四 张自忠路\n" + "北新桥 雍和宫 和平里北街 和平西桥 惠新西街南口 惠新西街北口 大屯桥东 北苑路北 立水桥南 立水桥 天通苑南 天通苑 天通苑北"; String[] line5Arr = line5Str.split(" "); for(String s : line5Arr){ line5.add(new Station(s)); } for(int i =0;i<line5.size();i++){ if(i<line5.size()-1){ line5.get(i).next = line5.get(i+1); line5.get(i+1).prev = line5.get(i); } } /*******************************************************************************/ //6号线 String line6Str = "金安桥 杨庄 西黄村 廖公庄 田村 海淀五路居 慈寿寺 花园桥 白石桥南 车公庄西 车公庄 平安里 北海北 南锣鼓巷 东四 朝阳门 东大桥\n" + "呼家楼 金台路 十里堡 青年路 褡裢坡 黄渠 常营 草房 物资学院路 通州北关 通运门 北运河西 北运河东 郝家府 东夏园 潞城"; String[] line6Arr = line6Str.split(" "); for(String s : line6Arr){ line6.add(new Station(s)); } for(int i =0;i<line6.size();i++){ if(i<line6.size()-1){ line6.get(i).next = line6.get(i+1); line6.get(i+1).prev = line6.get(i); } } /*******************************************************************************/ //7号线 String line7Str = "北京西站 湾子 达官营 广安门内 菜市口 虎坊桥 珠市口 桥湾 磁器口 广渠门内 广渠门外 九龙山 大郊亭\n" + "百子湾 化工 南楼梓庄 欢乐谷景区 垡头 双合 焦化厂"; String[] line7Arr = line7Str.split(" "); for(String s : line7Arr){ line7.add(new Station(s)); } for(int i =0;i<line7.size();i++){ if(i<line7.size()-1){ line7.get(i).next = line7.get(i+1); line7.get(i+1).prev = line7.get(i); } } /*******************************************************************************/ //8号线 String line8Str = "朱辛庄 育知路 平西府 回龙观东大街 霍营 育新 西小口 永泰庄 林萃桥 森林公园南门\n" + "奥林匹克公园 奥体中心 北土城 安华桥 安德里北街 鼓楼大街 什刹海 南锣鼓巷 中国美术馆"; String[] line8Arr = line8Str.split(" "); for(String s : line8Arr){ line8.add(new Station(s)); } for(int i =0;i<line8.size();i++){ if(i<line8.size()-1){ line8.get(i).next = line8.get(i+1); line8.get(i+1).prev = line8.get(i); } } /*******************************************************************************/ //8号线南段 String line8SStr = "珠市口 天桥 永定门外 木樨园 海户屯 大红门南 和义 东高地 火箭万源 五福堂 德茂 瀛海"; String[] line8SArr = line8SStr.split(" "); for(String s : line8SArr){ line8S.add(new Station(s)); } for(int i =0;i<line8S.size();i++){ if(i<line8S.size()-1){ line8S.get(i).next = line8S.get(i+1); line8S.get(i+1).prev = line8S.get(i); } } /*******************************************************************************/ //9号线 String line9Str = "国家图书馆 白石桥南 白堆子 军事博物馆 北京西站 六里桥东 六里桥 七里庄\n" + "丰台东大街 丰台南路 科怡路 丰台科技园 郭公庄"; String[] line9Arr = line9Str.split(" "); for(String s : line9Arr){ line9.add(new Station(s)); } for(int i =0;i<line9.size();i++){ if(i<line9.size()-1){ line9.get(i).next = line9.get(i+1); line9.get(i+1).prev = line9.get(i); } } /*******************************************************************************/ //10号线 String line10Str = "劲松 双井 国贸 金台夕照 呼家楼 团结湖 农业展览馆 亮马桥 三元桥 太阳宫 芍药居\n" + "惠新西街南口 安贞门 北土城 健德门 牡丹园 西土城 知春路 知春里 海淀黄庄 苏州街 巴沟 火器营\n" + "长春桥 车道沟 慈寿寺 西钓鱼台 公主坟 莲花桥 六里桥 西局 泥洼 丰台站 首经贸 纪家庙 草桥\n" + "角门西 角门东 大红门 石榴庄 宋家庄 成寿寺 分钟寺 十里河 潘家园 劲松"; String[] line10Arr = line10Str.split(" "); for(String s : line10Arr){ line10.add(new Station(s)); } for(int i =0;i<line10.size();i++){ if(i<line10.size()-1){ line10.get(i).next = line10.get(i+1); line10.get(i+1).prev = line10.get(i); } } /*******************************************************************************/ //新机场线 String lineXinjichangStr = "草桥 大兴新城 大兴机场"; String[] lineXinjichangArr = lineXinjichangStr.split(" "); for(String s : lineXinjichangArr){ linexinjichang.add(new Station(s)); } for(int i = 0; i< linexinjichang.size(); i++){ if(i< linexinjichang.size()-1){ linexinjichang.get(i).next = linexinjichang.get(i+1); linexinjichang.get(i+1).prev = linexinjichang.get(i); } } /*******************************************************************************/ //13号线 String line13Str = "西直门 大钟寺 知春路 五道口 上地 西二旗 龙泽 回龙观 霍营 立水桥 北苑 望京西\n" + "芍药居 光熙门 柳芳 东直门"; String[] line13Arr = line13Str.split(" "); for(String s : line13Arr){ line13.add(new Station(s)); } for(int i =0;i<line13.size();i++){ if(i<line13.size()-1){ line13.get(i).next = line13.get(i+1); line13.get(i+1).prev = line13.get(i); } } /*******************************************************************************/ //14号线西端 String line14WStr = "张郭庄 园博园 大瓦窑 郭庄子 打井 七里庄 西局"; String[] line14WArr = line14WStr.split(" "); for(String s : line14WArr){ line14W.add(new Station(s)); } for(int i =0;i<line14W.size();i++){ if(i<line14W.size()-1){ line14W.get(i).next = line14W.get(i+1); line14W.get(i+1).prev = line14W.get(i); } } /*******************************************************************************/ //14号线东端 String line14EStr = "北京南站 永定门外 景泰 蒲黄榆 方庄 十里河 北工大西门 平乐园 九龙山 大望路" + "金台路 朝阳公园 枣营 东风北桥 将台 望京南 阜通 望京 东湖渠 来广营 善各庄"; String[] line14EArr = line14EStr.split(" "); for(String s : line14EArr){ line14E.add(new Station(s)); } for(int i =0;i<line14E.size();i++){ if(i<line14E.size()-1){ line14E.get(i).next = line14E.get(i+1); line14E.get(i+1).prev = line14E.get(i); } } /*******************************************************************************/ //15号线 String line15Str = "俸伯 顺义 石门 南法信 后沙峪 花梨坎 国展 孙河 马泉营 崔各庄 望京东 望京 望京西" + "关庄 大屯路东 安立路 奥林匹克公园 北沙滩 六道口 清华东路西口"; String[] line15Arr = line15Str.split(" "); for(String s : line15Arr){ line15.add(new Station(s)); } for(int i =0;i<line15.size();i++){ if(i<line15.size()-1){ line15.get(i).next = line15.get(i+1); line15.get(i+1).prev = line15.get(i); } } /*******************************************************************************/ //16号线 String line16Str = "北安河 温阳路 稻香湖路 屯佃 永丰 永丰南 西北旺 马连洼 农大南路 西苑"; String[] line16Arr = line16Str.split(" "); for(String s : line16Arr){ line16.add(new Station(s)); } for(int i =0;i<line16.size();i++){ if(i<line16.size()-1){ line16.get(i).next = line16.get(i+1); line16.get(i+1).prev = line16.get(i); } } /*******************************************************************************/ //八通线 String linebatongStr = "四惠 四惠东 高碑店 传媒大学 双桥 管庄 八里桥 通州北苑 果园 九棵树 梨园 临河里 土桥"; String[] linebatongArr = linebatongStr.split(" "); for(String s : linebatongArr){ linebatong.add(new Station(s)); } for(int i =0;i<linebatong.size();i++){ if(i<linebatong.size()-1){ linebatong.get(i).next = linebatong.get(i+1); linebatong.get(i+1).prev = linebatong.get(i); } } /*******************************************************************************/ //昌平线 String linechangpingStr = "昌平西山口 十三陵景区 昌平 昌平关东 北邵洼 南邵 沙河高教园 沙河 巩华城 朱辛庄 生命科学园 西二旗"; String[] linechangpingArr = linechangpingStr.split(" "); for(String s : linechangpingArr){ linechangping.add(new Station(s)); } for(int i =0;i<linechangping.size();i++){ if(i<linechangping.size()-1){ linechangping.get(i).next = linechangping.get(i+1); linechangping.get(i+1).prev = linechangping.get(i); } } /*******************************************************************************/ //亦庄线 String lineyizhuangStr = "宋家庄 肖村 小红门 旧宫 亦庄桥 亦庄文化园 万源街 荣京东街 荣昌东街" + " 经海路 次渠南 次渠 亦庄火车站"; String[] lineyizhuangArr = lineyizhuangStr.split(" "); for(String s : lineyizhuangArr){ lineyizhuang.add(new Station(s)); } for(int i =0;i<lineyizhuang.size();i++){ if(i<lineyizhuang.size()-1){ lineyizhuang.get(i).next = lineyizhuang.get(i+1); lineyizhuang.get(i+1).prev = lineyizhuang.get(i); } } /*******************************************************************************/ //房山线 String linefangshanStr = "郭公庄 大葆台 稻田 长阳 篱笆房 广阳城 良乡大学城北 良乡大学城 良乡大学城西 良乡南关 苏庄 阎村东"; String[] linefangshanArr = linefangshanStr.split(" "); for(String s : linefangshanArr){ linefangshan.add(new Station(s)); } for(int i =0;i<linefangshan.size();i++){ if(i<linefangshan.size()-1){ linefangshan.get(i).next = linefangshan.get(i+1); linefangshan.get(i+1).prev = linefangshan.get(i); } } /*******************************************************************************/ //机场线 String linejichangStr = "东直门 三元桥 T2航站楼 T3航站楼"; String[] linejichangArr = linejichangStr.split(" "); for(String s : linejichangArr){ linejichang.add(new Station(s)); } for(int i =0;i<linejichang.size();i++){ if(i<linejichang.size()-1){ linejichang.get(i).next = linejichang.get(i+1); linejichang.get(i+1).prev = linejichang.get(i); } } /*******************************************************************************/ //s1号线 String lineS1Str = "金安桥 四道桥 桥户营 上岸 栗园庄 小园 石厂"; String[] lineS1Arr = lineS1Str.split(" "); for(String s : lineS1Arr){ lineS1.add(new Station(s)); } for(int i =0;i<lineS1.size();i++){ if(i<lineS1.size()-1){ lineS1.get(i).next = lineS1.get(i+1); lineS1.get(i+1).prev = lineS1.get(i); } } /*******************************************************************************/ //燕房线 String lineyanfangStr = "燕山 房山城关 饶乐府 马各庄 大石河东 星城 阎村 紫草坞 阎村东"; String[] lineyanfangArr = lineyanfangStr.split(" "); for(String s : lineyanfangArr){ lineyanfang.add(new Station(s)); } for(int i =0;i<lineyanfang.size();i++){ if(i<lineyanfang.size()-1){ lineyanfang.get(i).next = lineyanfang.get(i+1); lineyanfang.get(i+1).prev = lineyanfang.get(i); } } /*******************************************************************************/ //西郊线 String linexijiaoStr = "香山 植物园 万安 茶棚 颐和园西门 巴沟"; String[] linexijiaoArr = linexijiaoStr.split(" "); for(String s : linexijiaoArr){ linexijiao.add(new Station(s)); } for(int i =0;i<linexijiao.size();i++){ if(i<linexijiao.size()-1){ linexijiao.get(i).next = linexijiao.get(i+1); linexijiao.get(i+1).prev = linexijiao.get(i); } } lineSet.add(line1); lineSet.add(line2); lineSet.add(line4); lineSet.add(line5); lineSet.add(line6); lineSet.add(line7); lineSet.add(line8); lineSet.add(line8S); lineSet.add(line9); lineSet.add(line10); lineSet.add(linexinjichang); lineSet.add(line13); lineSet.add(line14W); lineSet.add(line14W); lineSet.add(line15); lineSet.add(line16); lineSet.add(linebatong); lineSet.add(linechangping); lineSet.add(lineyizhuang); lineSet.add(linefangshan); lineSet.add(lineS1); lineSet.add(lineyanfang); lineSet.add(linexijiao); // totalStaion = line1.size() + line2.size() + line3.size() + line10.size() + lineS1.size() + lineS8.size(); totalStaion = line1.size() + line2.size() + line4.size() + line5.size() + line6.size() + line7.size() + line8.size() + line8S.size() + line9.size() + line10.size() + linexinjichang.size() + line13.size() + line14W.size() + line14W.size() + line15.size() + line16.size() + linebatong.size() + linechangping.size() + lineyizhuang.size() + linefangshan.size() + lineS1.size() + lineyanfang.size() + linexijiao.size(); System.out.println("总的站点数量:"+totalStaion); } }