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

📄 city.java

📁 这是本人学习JAVA操作XML文件时编写的小软件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -