java hashmap<object,String>

首先我有个hashmap<object,String>这个Object里面有地铁线路,以及号码。例如:南线,1号站。我想做个邻接表,把相同线的地铁站链接起来。//如果号码... 首先我有个hashmap<object,String>
这个Object里面有地铁线路,以及号码。例如:南线,1号站。
我想做个邻接表,把相同线的地铁站链接起来。
//如果号码比大于零的话,那就+1,找到它旁边的站。
if(currentNum>0){
int neighbor_num = currentNum + 1;
Station neighbor = new Station(currentLine+neighbor_num);
String neighborName = Station_mrtName.get(neighbor);
System.out.println((currentLine+neighbor_num)+":"+neighborName);

但是这样的话,我要怎么样从我的Station Object里找到是否有+1之后的地铁站呢?能不能不用forloop。
展开
 我来答
LMLU23
2016-05-17 · TA获得超过901个赞
知道小有建树答主
回答量:373
采纳率:0%
帮助的人:363万
展开全部

你已经提及了好几个概念:线路、站点、相邻的站点,把这些设计成对象就行了。

//下面只是伪代码,自己微调下

public class SubWayLine{
    private String name;
    private List<Station> stations;
    public void expendStation(String stationName){
           expendStation(stations.length, stationName);
    }
    public void expendStation(int number, String stationName){
          Station newStation = new Station(stationName);
          //留个思考问题,考虑下把下面的代码提取出来,成为一个以后遇到这种情况都能处理的工具类方法。
          ListIterator<Station> listIterator = stations.listIterator(number);
          if (listIterator.hasPrevious()){
               previousStation = listIterator.previous();
               previousStation.setNextStation(newStation);
               newStation.setPreviousStation(previousStation);
               listIterator.next();
          }
          if (listIterator.hasNext()){
               nextStation = listIterator.next();
               nextStation.setPreviousStation(newStation);
               newStation.setNextStation(nextStation);
               listIterator.previous();
          }
          listIterator.add(newStation);
          listIterator.previous();
          for(int i=number; listIterator.hasNext(); i++){
             listIterator.next().setNumber(i);
          }
    }
    ...
}
public class Station{
    private String name;
    private int number;
    private Station previousStation;
    private Station nextStation;
    ...
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式