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。 展开
这个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。 展开
1个回答
展开全部
你已经提及了好几个概念:线路、站点、相邻的站点,把这些设计成对象就行了。
//下面只是伪代码,自己微调下
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;
...
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询