📄 city.java
字号:
package com.rochoc.BusLine.Bean;
import java.util.ArrayList;
import java.util.Hashtable;
/**
* @author luoc
*
*
* 城市公交路线信息
*
* @version 2005-02-19
*/
public class City implements Cloneable
{
/**
* 构造函数
*/
public City()
{
Lines=new ArrayList();
CityStations=new Hashtable();
}
/**
* 构造函数
* @param id String
* @param name String
*/
public City(String id,String name)
{
Id=id;
Name=name;
Lines=new ArrayList();
CityStations=new Hashtable();
}
/**
* 设置城市编号
* @param id String
*/
public void setId(String id)
{
Id=id;
}
/**
* 设置城市名称
* @param name String
*/
public void setName(String name)
{
Name=name;
}
/**
* 获取城市Id
* @return String
*/
public String getId()
{
return Id;
}
/**
* 获取城市名称
* @return String
*/
public String getName()
{
return Name;
}
/**
* 获取城市的公交路线数
* @return int
*/
public int getSize()
{
return Lines.size();
}
/**
* 增加路线到最后
* @param Line
*/
public void addLine(Line line)
{
Lines.add(line);
}
/**
* 新增站点到指定位置后
* @param ln Line
* @return boolean
*/
public boolean addLine(int index,Line ln)
{
int size=getSize();
if(index<0 || index>size)//指定的位置超出范围
{
return false;
}
Lines.add(index,ln);
return true;
}
/**
* 删除指定位置的路线
* @param index int
* @return boolean
*/
public boolean removeLine(int index)
{
int size=getSize();
if(index<1 || index>size)//指定的位置超出范围
{
return false;
}
Lines.remove(index-1);
return true;
}
/**
* 删除指定路线号的路线
* @param no String
* @return boolean
*/
public boolean removeLine(String no)
{
int size=getSize();
for(int i=0;i<size;i++)
{
Line ln=getLine(i+1);
if(ln.getId().equals(no))
{
Lines.remove(i);
return true;
}
}
return false;
}
// /**
// * 更新指定位置的路线
// * @param index int
// * @param ln Line
// * @return boolean
// */
// public boolean updateLine(int index,Line ln)
// {
// int size=getSize();
// if(index<1 || index>size)//指定的位置超出范围
// {
// return false;
// }
// addLine(index,ln);
// removeLine(index);
// return true;
// }
// /**
// * 更新指定编号的路线
// * @param no String
// * @param ln Line
// * @return boolean
// */
// public boolean updateLineById(String no,Line ln)
// {
// int size=getSize();
// for(int i=1;i<=size;i++)
// {
// Line line=getLine(i);
// if(line.getId().equals(no))
// {
// updateLine(i,ln);
// return true;
// }
// }
// return false;
// }
/**
* 获取指定位置的路线
* @param index int
* @return Line
*/
public Line getLine(int index)
{
int size=getSize();
if(index<1 || index>size)//指定的位置超出范围
{
return null;
}
return (Line)Lines.get(index-1);
}
/**
* 获取指定路线号的路线
* @param no String
* @return Line
*/
public Line getLineById(String no)
{
int size=getSize();
for(int i=0;i<size;i++)
{
Line ln=(Line)Lines.get(i);
if(ln.getId().equals(no))
{
return ln;
}
}
return null;
}
/**
* 获取指定名称的路线
* @param name String
* @return Line
*/
public Line getLineByName(String name)
{
int size=getSize();
for(int i=0;i<size;i++)
{
Line ln=getLine(i+1);
if(ln.getName().equals(name))
{
return ln;
}
}
return null;
}
/**
* 获取指定名称相似的路线
* @param name String
* @return ArrayList
*/
public ArrayList getLineByNameLike(String name)
{
int size=getSize();
ArrayList ls=new ArrayList();
for(int i=0;i<size;i++)
{
Line ln=getLine(i+1);
if(ln.getName().indexOf(name)>=0)
{
ls.add(ln);
}
}
return ls;
}
/**
* 根据传人的路线号返回该路线的index
* @param id String
* @return int
*/
public int getLineIdxById(String id)
{
for(int i=0;i<getSize();i++)
{
Line ln=getLine(i+1);
if(ln.getId().equals(id))
{
return i;
}
}
return -1;
}
/**
* 根据传人的路线名称返回该路线的index
* @param name String
* @return int
*/
public int getLineIdxByName(String name)
{
for(int i=0;i<getSize();i++)
{
Line ln=getLine(i+1);
if(ln.getName().equals(name))
{
return i;
}
}
return -1;
}
//以下注释掉的为原搜索站点方法
// /**
// * 获取经过指定站点的路线
// * @param st String
// * @return ArrayList
// */
// public ArrayList getLineByStation(String st)
// {
// int size=getSize();
// ArrayList ls=new ArrayList();
// for(int i=0;i<size;i++)
// {
// Line ln=getLine(i+1);
// if(ln.getStation(st)!=null)//此路线可以
// {
// ls.add(ln);
// }
// }
// return ls;
// }
// /**
// * 获取经过指定站点的路线,模糊
// * @param st String
// * @return ArrayList
// */
// public ArrayList getLineByStationLike(String st)
// {
// int size=getSize();
// ArrayList ls=new ArrayList();
// for(int i=0;i<size;i++)
// {
// Line ln=getLine(i+1);
// if(ln.getStationLike(st)!=null)//此路线可以
// {
// ls.add(ln);
// }
// }
// return ls;
// }
// /**
// * 获取经过指定站点的路线
// * @param st1 String
// * @param st2 String
// * @return ArrayList
// */
// public ArrayList getLineByStation(String st1,String st2)
// {
// int size=getSize();
// ArrayList ls=new ArrayList();
// for(int i=0;i<size;i++)
// {
// Line ln=getLine(i+1);
// if(ln.getStation(st1)!=null && ln.getStation(st2)!=null)//此路线可以
// {
// ls.add(ln);
// }
// }
// return ls;
// }
// /**
// * 获取经过指定站点的路线,模糊
// * @param st1 String
// * @param st2 String
// * @return ArrayList
// */
// public ArrayList getLineByStationLike(String st1,String st2)
// {
// int size=getSize();
// ArrayList ls=new ArrayList();
// for(int i=0;i<size;i++)
// {
// Line ln=getLine(i+1);
// if(ln.getStationLike(st1)!=null && ln.getStationLike(st2)!=null)//此路线可以
// {
// ls.add(ln);
// }
// }
// return ls;
// }
// /**
// * 获取经过指定站点的路线,支持换车
// * @param st1 String
// * @param st2 String
// * @return ArrayList
// */
// public ArrayList getLineByStationChg(String st1,String st2)
// {
// int size=getSize();
// ArrayList ls=new ArrayList();//记录是成对成现的,表示要换的车
// for(int i=1;i<=size;i++)
// {
// Line ln=getLine(i);
// if(ln.getStation(st1)!=null)//站点1匹配
// {
// for(int j=i+1;j<size;j++)//看其它路线是否存在与站点2匹配
// {
// Line ln2=getLine(j);
// if(ln2.getStation(st2)!=null);//站点2匹配
// {
// if(hasSameStation(ln,ln2))//如果有相同站点则找到
// {
// ls.add(ln);
// ls.add(ln2);
// }
// }
// }
// }
// if(ln.getStation(st2)!=null)//站点2匹配
// {
// for(int j=i+1;j<size;j++)//看其它路线是否存在与站点1匹配
// {
// Line ln1=getLine(j);
// if(ln1.getStation(st1)!=null);//站点2匹配
// {
// if(hasSameStation(ln,ln1))//如果有相同站点则找到
// {
// ls.add(ln1);
// ls.add(ln);
// }
// }
// }
// }
// }
// return ls;
// }
// /**
// * 获取经过指定站点的路线,模糊,支持换车
// * @param st1 String
// * @param st2 String
// * @return ArrayList
// */
// public ArrayList getLineByStationChgLike(String st1,String st2)
// {
// int size=getSize();
// ArrayList ls=new ArrayList();
// boolean b_st1=false;//站点1是否已经匹配
// boolean b_st2=false;//站点2是否已经匹配
// for(int i=0;i<size;i++)
// {
// Line ln=getLine(i+1);
// if(ln.getStationLike(st1)!=null)//站点1匹配
// {
// ls.add(ln);
// b_st1=true;
// continue;
// }
// if(ln.getStationLike(st2)!=null)//站点2匹配
// {
// ls.add(ln);
// b_st2=true;
// }
// }
// if(!b_st1 || !b_st2)//站点1和2有一个不匹配则失败
// {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -