/**
* 公交换乘一站的算法思想:
* (注意:车次信息、站点信息、公交信息是等价的都是以HashMap的形式存储信息)
* 1.从数据库中获得所有公交信息存储到ArrayList,每个具体信息的元数据有三个:
* 公交车次、公交站点、该公交站点距离该公交车次的始发站点的站数,具体信息用HashMap保存
* 2.然后把公交信息数据进行结构化,把所有公交站点抽出,再把每一个站点对应的所有车次抽出
* 与其一一对应,单一的车次信息用HashMap存储,站点对应的所有车次信息用ArrayList存储,
* 所有的站点有经过站点的车次信息用HashMap存储
* 3.根据查询要求,分别从结构化以后的公交信息数据中找到,经过出发地的所有车次,经过目的地
* 的所有车次,然后在分别遍历每个车次,筛选出符合要求的中转站点,筛选规则是:每查询出一个
* 站点时,得到该站点距离该站点对应车次的始发站的站数,如果这个站数小于查询站点距离该车次的始
* 发站的站数,那么就符合规则,便把该站点信息保存到符合站点的ArrayList中,反之亦然
* 4.分别得到查询条件中出发地和目的地的中转站点信息(中转站点信息存储在ArrayList中),然
* 后遍历两个中转站点信息的集合,得到最终的具体中转信息(最终中转信息也是用ArrayList存储)
*/
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 T {
private String start = null;// 出发地
private String whither = null;// 目标地
private List schedule = null;// 用于缓存列车时刻表。
private HashMap
stationsOfLine = null; // 所有公交线路,每个list存储该线路经过的所有车站。
private HashMap linesOfStation = null;// 所有车站,每个list中存储通过该车站的所有车次。
// private ArrayList startLine = new ArrayList ();//
// 途经出发地的所有车次。
// private ArrayList whitherLine = new ArrayList ();//
// 途经目的地的所有车次。
private ArrayList
没有评论:
发表评论