计应193第一组个人流程——任文凯

计应193第一组个人流程——任文凯

 

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);
    }
}

 

上一篇:个人开发流程——计应193,第3组,张真齐


下一篇:计应193第七组李佳地铁计费