亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 公交換乘算法.txt

?? java 的代碼
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
偶5月份寫的公交換乘算法: 
公交換乘一站算法busTransfer 
/** 
* 公交換乘一站的算法思想: 
* (注意:車次信息、站點信息、公交信息是等價的都是以HashMap的形式存儲信息) 
* 1.從數據庫中獲得所有公交信息存儲到ArrayList,每個具體信息的元數據有三個: 
* 公交車次、公交站點、該公交站點距離該公交車次的始發站點的站數,具體信息用HashMap保存 
* 2.然后把公交信息數據進行結構化,把所有公交站點抽出,再把每一個站點對應的所有車次抽出 
* 與其一一對應,單一的車次信息用HashMap存儲,站點對應的所有車次信息用ArrayList存儲, 
* 所有的站點有經過站點的車次信息用HashMap存儲 
* 3.根據查詢要求,分別從結構化以后的公交信息數據中找到,經過出發地的所有車次,經過目的地 
* 的所有車次,然后在分別遍歷每個車次,篩選出符合要求的中轉站點,篩選規則是:每查詢出一個 
* 站點時,得到該站點距離該站點對應車次的始發站的站數,如果這個站數小于查詢站點距離該車次的始 
* 發站的站數,那么就符合規則,便把該站點信息保存到符合站點的ArrayList中,反之亦然 
* 4.分別得到查詢條件中出發地和目的地的中轉站點信息(中轉站點信息存儲在ArrayList中),然 
* 后遍歷兩個中轉站點信息的集合,得到最終的具體中轉信息(最終中轉信息也是用ArrayList存儲) 
*/ 
package bustransfer; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.ResultSet; 
import java.sql.ResultSetMetaData; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 
import java.util.HashMap; 
import java.util.Map; 

public class BusTransfer { 

        private String start = null;// 出發地 

        private String whither = null;// 目標地 

        private List schedule = null;// 用于緩存列車時刻表。 

        private HashMap <String, ArrayList> stationsOfLine = null; // 所有公交線路,每個list存儲該線路經過的所有車站。 

        private HashMap <String, ArrayList> linesOfStation = null;// 所有車站,每個list中存儲通過該車站的所有車次。 

        // private ArrayList <String> startLine = new ArrayList <String>();// 
        // 途經出發地的所有車次。 

        // private ArrayList <String> whitherLine = new ArrayList <String>();// 
        // 途經目的地的所有車次。 

        private ArrayList <Map> firLineStaList = new ArrayList <Map>(); 

        private ArrayList <Map> secLineStaList = new ArrayList <Map>(); 

        public BusTransfer(String start, String whither) { 
                this.start = start; 
                this.whither = whither; 

                try { 
                        this.schedule = this 
                                        .executeQuery("select busLine,up,stationNo from bus_stations"); 
                } catch (Exception e) { 
                        // TODO Auto-generated catch block 
                        System.out.println("讀取數據庫出錯"); 
                        e.printStackTrace(); 
                } 
                stationsOfLine = this.getStationsOfLine(); 
                linesOfStation = this.getLinesOfStation(); 
        } 

        private HashMap <String, ArrayList> getStationsOfLine() { 
                HashMap map = new HashMap();// 用于 臨時存儲從schedule中取出的HashMap. 
                ArrayList <Map> line = null;// 每個list存儲一個車次的相關車站信息。 
                String buffer = "a";// 緩存站名。 
                String temp = null;// 臨時存儲每次迭代取出的站名,用于與buffer站名比較。 
                HashMap <String, ArrayList> stationsGroupByLine = new HashMap <String, ArrayList>();// 存儲以車次分組後的車站的list 

                Iterator it = schedule.iterator(); // 迭代器 
                while (it.hasNext()) { 
                        map = (HashMap) it.next(); 

                        temp = (String) map.get("busLine"); 
                        if (stationsGroupByLine.containsKey(temp)) { 
                                line = stationsGroupByLine.get(temp); 
                                buffer = (String) ((Map) line.get(0)).get("busLine"); 
                        } 
                        if (buffer.equals(temp)) { 
                                line.add(map);// 將同一車次的車站放入一個list中 

                        } else { 
                                if (line != null && !line.isEmpty()) { 
                                        stationsGroupByLine.put(buffer, line);// 將由車次分組后的車站構成的list存入一個map 
                                } 
                                line = new ArrayList <Map>(); // line重新引用一個新構造的list,以供存儲同一車站的車次。 
                                line.add(map);// 將同一車次的車站放入剛剛構造的空list中 
                        } 
                        buffer = temp;// 緩存當前操作的車次。 
                } 
                return stationsGroupByLine; 
        } 

        private HashMap getLinesOfStation() { 
                HashMap map = new HashMap();// 用于 臨時存儲從schedule中取出的HashMap. 
                ArrayList <Map> station = null;// 每個list存儲一個經過該車站的相關車次信息。 
                String buffer = "a";// 緩存車次。 
                String temp = null;// 臨時存儲每次迭代取出的車次,用于與buffer車次比較。 
                HashMap <String, ArrayList> linesGroupBystation = new HashMap <String, ArrayList>();// 存儲以車站分組後的車次的list 

                Iterator it = schedule.iterator(); // 迭代器 
                while (it.hasNext()) { 
                        map = (HashMap) it.next(); 

                        temp = (String) map.get("up"); 
                        if (linesGroupBystation.containsKey(temp)) { 
                                // station存儲temp車次對應的站點信息 
                                station = linesGroupBystation.get(temp); 
                                // 從station中取出已經放入linesGroupBystation車站信息,緩存改車站的名字 
                                // 與剛取出的Map中存儲到車站信息進行比較 
                                buffer = (String) ((Map) station.get(0)).get("up"); 
                        } 
                        if (buffer.equals(temp)) { 
                                // 如果station中幾經存在該站點信息,那么,本站和station中存儲到是同一站,所以 
                                // 將同一車次的車站放入一個list中 
                                station.add(map); 

                        } else { 
                                if (station != null && !station.isEmpty()) { 
                                        // 將由車次分組后的車站構成的list存入一個map 
                                        linesGroupBystation.put(buffer, station); 
                                } 
                                // line重新引用一個新構造的list,以供存儲經過另一車站的所有車次 
                                station = new ArrayList <Map>(); 
                                station.add(map);// 將同一車次的車站放入剛剛構造的空list中 
                        } 
                        buffer = temp;// 緩存當前操作的車次。 
                } 
                return linesGroupBystation; 
        } 

  /** 
        * 站點篩選規則:把符合規則的站點添分別放入 
        * 
        * @param startSta 
        * @param whitherSta 
        */ 
        private void getStationsInLine(String startSta, String whitherSta) { 
                // 獲得經過初始站點的所有公交車次 
                ArrayList firTrainLine = linesOfStation.get(startSta); 
                // 獲得經過所有目的站點的公交車次 
                ArrayList secTrainLine = linesOfStation.get(whitherSta); 

                ArrayList station; 
                HashMap line = null; 
                int transferStaNo = 0; 
                // String stationName = null; 
                String trainNo = ""; 

                if (firTrainLine != null) { 
                        Iterator firIt = firTrainLine.iterator(); 
                        while (firIt.hasNext()) { 
                                // 取出一個存儲車站信息HashMap 
                                line = (HashMap) firIt.next(); 
                                // 取出車次信息 
                                trainNo = (String) line.get("busLine"); 
                                transferStaNo = (Integer) line.get("stationNo"); 

                                // 取出車次trainNo經過的所有站點信息 
                                station = stationsOfLine.get(trainNo); 
                                Iterator it = station.iterator(); 
                                while (it.hasNext()) { 

                                        Map map = (Map) it.next();// trainNo's map. 
                                        int i = (Integer) map.get("stationNo"); 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产盗摄精品一区二区三区在线 | 欧美精品一二三| 亚洲精品成a人| 久久精品一区四区| 亚洲精品一区二区三区在线观看| 精品精品欲导航| 欧美高清视频一二三区| 国产精品亚洲第一区在线暖暖韩国| 亚洲电影一区二区三区| 国产精品 日产精品 欧美精品| 亚洲欧美在线高清| 久久精品国产免费看久久精品| 国产成人久久精品77777最新版本| 久久国内精品自在自线400部| 在线观看视频一区二区| 欧美裸体一区二区三区| 亚洲综合在线第一页| 欧美一区二区在线播放| 欧美一区二区三区电影| 欧美一区二区私人影院日本| 天天影视色香欲综合网老头| 欧美sm美女调教| 成人a免费在线看| 一本大道久久a久久综合婷婷| 亚洲一区二区三区四区不卡| 五月激情综合网| 亚洲国产乱码最新视频 | 欧美精品777| 丝袜诱惑制服诱惑色一区在线观看| 国内精品伊人久久久久av一坑| 成人午夜视频在线观看| 亚洲成av人**亚洲成av**| 在线观看免费成人| 日本一区二区在线不卡| 中文字幕亚洲不卡| 日本韩国欧美在线| 国产一区欧美一区| 一卡二卡三卡日韩欧美| 国产精品入口麻豆九色| 五月婷婷激情综合网| 亚洲精品v日韩精品| 秋霞午夜av一区二区三区| 69精品人人人人| 国产综合久久久久久久久久久久| 国产一区二区三区久久久| 亚洲男人的天堂在线aⅴ视频| 成人在线视频首页| 4hu四虎永久在线影院成人| 欧美日韩精品是欧美日韩精品| 欧美男人的天堂一二区| 午夜激情综合网| 在线不卡中文字幕播放| 亚洲国产婷婷综合在线精品| 五月婷婷综合激情| 亚洲精品免费视频| 99久久久精品| 一级做a爱片久久| 夜夜嗨av一区二区三区| 亚洲女同一区二区| 亚洲成av人片| 亚洲三级免费观看| 欧美性猛交xxxx黑人交| 欧美日韩精品一区视频| 日韩亚洲欧美高清| 国产亚洲一区二区在线观看| 国产精品人妖ts系列视频| 亚洲美女免费在线| 青娱乐精品视频| 国产经典欧美精品| 一本色道亚洲精品aⅴ| 欧美男女性生活在线直播观看| 精品国产一区二区亚洲人成毛片| 国产三级精品三级| 亚洲精品高清在线观看| 六月婷婷色综合| fc2成人免费人成在线观看播放| 欧美日韩精品一二三区| 久久欧美一区二区| 亚洲视频每日更新| 美女被吸乳得到大胸91| 99国产麻豆精品| 日韩欧美一级二级| 亚洲色图在线播放| 蜜臀av在线播放一区二区三区| 丁香五精品蜜臀久久久久99网站 | 欧洲av一区二区嗯嗯嗯啊| 欧美一卡二卡三卡| 中文字幕在线观看一区| 秋霞成人午夜伦在线观看| 99久久精品国产精品久久| 7777精品伊人久久久大香线蕉 | 国产精品99久久久久久似苏梦涵| 91亚洲永久精品| 91麻豆精品国产91久久久久 | 三级在线观看一区二区 | 懂色av一区二区三区免费观看| 欧美性猛交xxxx乱大交退制版| 久久久综合视频| 视频一区在线视频| 成人av免费网站| 亚洲精品在线观看视频| 亚洲福利一二三区| 91丝袜美腿高跟国产极品老师| 日韩欧美成人午夜| 洋洋成人永久网站入口| 成人ar影院免费观看视频| 欧美www视频| 亚洲大片在线观看| av在线免费不卡| 久久青草欧美一区二区三区| 三级久久三级久久久| 色婷婷精品久久二区二区蜜臀av | 韩国成人福利片在线播放| 欧美熟乱第一页| 亚洲天堂精品视频| 国产大陆亚洲精品国产| 欧美不卡在线视频| 日本欧美一区二区在线观看| 欧美亚洲国产怡红院影院| 国产精品沙发午睡系列990531| 狠狠色丁香婷婷综合| 日韩欧美一区二区不卡| 石原莉奈在线亚洲三区| 欧美性受xxxx黑人xyx| 亚洲美女视频在线| 91丨九色丨蝌蚪富婆spa| 中文字幕字幕中文在线中不卡视频| 国产精品 日产精品 欧美精品| 2020国产精品自拍| 黄色日韩三级电影| 精品国产一区二区精华| 精品影视av免费| 日韩欧美亚洲国产另类| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美老肥妇做.爰bbww| 亚洲第一狼人社区| 欧美理论在线播放| 久久国产三级精品| 精品成人在线观看| 国产伦精品一区二区三区视频青涩| 欧美mv和日韩mv国产网站| 韩国女主播成人在线观看| 久久欧美一区二区| 成人永久看片免费视频天堂| 国产精品久久久久久妇女6080| 成人激情午夜影院| 亚洲欧美怡红院| 欧美探花视频资源| 日韩国产欧美在线播放| 日韩三级视频中文字幕| 久久超碰97中文字幕| 久久久精品欧美丰满| 成人av电影在线| 亚洲午夜激情av| 欧美一区二区不卡视频| 国产成人精品综合在线观看| 国产精品大尺度| 在线看日韩精品电影| 日本亚洲最大的色成网站www| 日韩女优电影在线观看| 国产乱淫av一区二区三区| 国产精品传媒入口麻豆| 欧美色精品在线视频| 日本亚洲视频在线| 欧美国产97人人爽人人喊| 99re免费视频精品全部| 五月婷婷综合激情| 26uuu精品一区二区在线观看| 成人短视频下载| 亚洲v中文字幕| 国产无一区二区| 欧美日韩一区二区在线观看视频 | 亚洲精品一区二区在线观看| 白白色 亚洲乱淫| 日精品一区二区| 国产欧美综合在线| 欧美在线免费播放| 国内外成人在线| 亚洲一区二区高清| 久久理论电影网| 欧美亚一区二区| 国产精品99久久久久久似苏梦涵| 一二三四社区欧美黄| 亚洲精品一区二区三区四区高清| 91视频在线看| 国内精品久久久久影院色| 一区二区三区免费| 久久丝袜美腿综合| 欧美日韩国产美| 成人精品国产免费网站| 蜜臀久久99精品久久久久宅男| 国产精品久久久久毛片软件| 欧美一级久久久久久久大片| 91亚洲大成网污www| 国产精品主播直播| 视频在线在亚洲| 一区二区三区精品在线| 国产亚洲午夜高清国产拍精品| 欧美日韩黄视频| 91女厕偷拍女厕偷拍高清|