展开全部
你已经提及了好几个概念:线路、站点、相邻的站点,把这些设计成对象32313133353236313431303231363533e58685e5aeb931333361303035就行了。
//下面只是伪代码,自己微调下public class SubWayLine{
private String name;
private List stations;
public void expendStation(String stationName){
expendStation(stations.length, stationName);
}
public void expendStation(int number, String stationName){
Station newStation = new Station(stationName);
//留个思考问题,考虑下把下面的代码提取出来,成为一个以后遇到这种情况都能处理的工具类方法。
ListIterator 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;
...
}