📄 line.java
字号:
package com.rochoc.BusLine.Bean;
import java.util.ArrayList;
/**
* @author luoc
*
* 路线信息
* @version 2005-02-06
*/
public class Line implements Cloneable
{
/**
* 构造函数
*/
public Line()
{
Stations=new ArrayList();
}
/**
* 构造函数
* @param Id String
* @param Name String
*/
public Line(String id,String name)
{
Id=id;
Name=name;
Desc="";
Stations=new ArrayList();
}
/**
*构造函数说明: <p>
*参数说明:@param id 路线Id
*参数说明:@param name 路线名称
*参数说明:@param desc 路线描述 <p>
**/
public Line(String id,String name,String desc)
{
Id=id;
Name=name;
Desc=desc;
Stations=new ArrayList();
}
/**
* 设置路线号
* @param id String
*/
public void setId(String id)
{
Id=id;
}
/**
* 获取路线号
* @return String
*/
public String getId()
{
return Id;
}
/**
* 设置路线名称
* @param id String
*/
public void setName(String name)
{
Name=name;
}
/**
* 获取路线名称
* @return String
*/
public String getName()
{
return Name;
}
/**
* 方法名称:setDesc<p>
* 方法功能:设置路线描述<p>
* 参数说明:@param desc 描述 <p>
* 返回:void <p>
* 作者:luoc
* 日期:2005-3-30
**/
public void setDesc(String desc)
{
Desc=desc;
}
/**
* 方法名称:getDesc<p>
* 方法功能:获取路线描述<p>
* 参数说明:@return <p>
* 返回:String <p>
* 作者:luoc
* 日期:2005-3-30
**/
public String getDesc()
{
return Desc;
}
/**
* 获取Stations的个数
* @return int
*/
public int getSize()
{
return Stations.size();
}
/**
* 新增站点到最后
* @param st Station
*/
public void addStation(Station st)
{
Stations.add(st);
}
/**
* 新增站点到指定位置后
* @param st Station
* @return boolean
*/
public boolean addStation(int index,Station st)
{
int size=getSize();
if(index<0 || index>size)//指定的位置超出范围
{
return false;
}
Stations.add(index,st);
return true;
}
/**
* 删除指定的站点
* @param int
*/
public boolean removeStation(int index)
{
int size=getSize();
if(index<1 || index>size)//指定的位置超出范围
{
return false;
}
Stations.remove(index-1);
return true;
}
/**
* 获取指定的站点
* @param int
* @return Station
*/
public Station getStation(int index)
{
int size=getSize();
if(index<1 || index>size)//指定的位置超出范围
{
return null;
}
return (Station)Stations.get(index-1);
}
/**
* 通过名称获取指定的站点
* @param String
* @return Station
*/
public Station getStation(String sname)
{
for(int i=0;i<getSize();i++)
{
Station st=getStation(i+1);
if(st.getName().equals(sname))
{
return st;
}
}
return null;
}
/**
* 通过名称获取指定的站点相似的站点集合(模糊查询)
* @param String
* @return ArrayList
*/
public ArrayList getStationLike(String sname)
{
ArrayList ls=new ArrayList();
for(int i=0;i<getSize();i++)
{
Station st=getStation(i+1);
if(st.getName().indexOf(sname)>=0)
{
ls.add(st);
}
}
return ls;
}
/**
* 根据站点在Stations中的顺序重新更新站点的Ord
*/
public void reOrderStation()
{
ArrayList ls=new ArrayList();
for(int i=0;i<getSize();i++)
{
Station st=getStation(i+1);
st.setOrd(String.valueOf(i+1));
ls.add(st);
}
Stations=ls;
}
/**
* 将指点位置的站点,移动n位
* @param pos int
* @param n int
* @return boolean
*/
public boolean stationMoive(int pos,int n)
{
int size=getSize();
if(pos<1 || pos>size)//指定的位置超出范围
{
return false;
}
if(pos+n>size || pos+n<1)//超出可移动范围
{
return false;
}
Station st=getStation(pos);
if(n>0)//向后移
{
Stations.add(pos+n,st);
Stations.remove(pos-1);
}else if(n<0)//向前移
{
Stations.add(pos+n-1,st);
Stations.remove(pos);
}
reOrderStation();//重新设置站点的顺序号
return true;
}
/**
* 将指定站点向前移一站
* @param pos int
* @return boolean
*/
public boolean stationForward(int pos)
{
return stationMoive(pos,-1);
}
/**
* 将指定站点向后移一站
* @param pos int
* @return boolean
*/
public boolean stationBack(int pos)
{
return stationMoive(pos,1);
}
/**
* 将指定的两个站点位置交换
* @param pos1 int
* @param pos2 int
* @return boolean
*/
public boolean stationExchange(int pos1,int pos2)
{
if(pos1==pos2)return false;//指定的两个站点号相等
int size=getSize();
if(pos1<1 || pos1>size)//指定的位置超出范围
{
return false;
}
if(pos2<1 || pos2>size)//指定的位置超出范围
{
return false;
}
int min=0;
int max=0;
if(pos1<pos2)
{
min=pos1;
max=pos2;
}else
{
min=pos2;
max=pos1;
}
Station st1=getStation(pos1);//获取前面的站点
Station st2=getStation(pos2);//获取后面的站点
/*交换 Begin*/
Stations.add(pos1,st2);
Stations.remove(pos1-1);
Stations.add(pos2,st1);
Stations.remove(pos2-1);
/*交换 End*/
reOrderStation();//重新设置站点的顺序号
return true;
}
public Object clone()
{
try
{
return super.clone();
}catch(CloneNotSupportedException e)
{
return null;
}
}
public String toString()
{
return "Line: Id="+Id+", Name="+Name+", Desc="+Desc+" Stations size="+Stations.size()+"\r\n";
}
/*属性 全局变量*/
private String Id=null;//路线号
private String Name=null;//路线名称
private String Desc=null;//路线描述,起始时间、结束时间
private ArrayList Stations=null;//路线中的站点
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -