⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 line.java

📁 这是本人学习JAVA操作XML文件时编写的小软件
💻 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 + -