如何调用ArrayList中SubwayLine对象的getStations()方法列出地铁站点?
实现指定地铁线路站点列表的解决方案
你的现有代码只是遍历所有地铁线路并调用getStations(),但两个关键环节缺失:
- 没有针对指定线路进行操作,而是遍历了所有线路
- 拿到站点列表后没有将内容输出到UI,自然看不到效果
核心解决思路
要实现「列出指定地铁线路的站点」,需要完成以下三步:
- 获取用户想要查询的线路名称(比如从UI输入控件读取)
- 根据线路名称从
allSubwayLines中取出对应的SubwayLine实例 - 取出该线路的站点列表,并将站点信息展示到UI上
修改后的代码示例
假设你已有获取用户输入线路名的方法(比如UI.getInputText()),修改后的listStationsOnLine()方法如下:
public void listStationsOnLine() { UI.clearText(); // 1. 获取用户指定的线路名称 String targetLineName = UI.getInputText(); // 2. 从map中获取对应的地铁线路 SubwayLine targetLine = allSubwayLines.get(targetLineName); // 3. 校验线路是否存在,避免空指针 if (targetLine == null) { UI.printText("不存在名为" + targetLineName + "的地铁线路"); return; } // 4. 获取站点列表并输出到UI List<Station> stations = targetLine.getStations(); UI.printText("线路" + targetLineName + "的站点列表:"); for (Station station : stations) { // 假设Station类有getName()方法获取站点名,按需调整 UI.printText("- " + station.getName()); } }
关键细节说明
- 线路名称的获取:如果你的UI用下拉选择框而非输入框,直接拿选中的线路标识即可,核心是匹配
allSubwayLines的key值 - Station类的展示:根据你实际的Station类结构调整输出内容,比如如果有站点编号、换乘信息等,可一并拼接输出
- 空值校验:必须判断
targetLine是否为null,避免用户输入不存在的线路时触发异常
内容的提问来源于stack exchange,提问作者acidic231
相关产品推荐
相关产品推荐

