我正在编写一些代码来管理"虚拟"火车/地铁车站网络。我已经使用类型为Map(字符串),(列表)(字符串)的Map实现了它。最后一种方法(我现在正在努力的方法)应该返回所有已添加到网络中的"站",没有重复项。我目前正在尝试让值返回,但是对这两个问题的任何建议将不胜感激。我在下面介绍了我如何设置地图,以及所讨论的方法。理想情况下,我希望这些值作为数组返回,但编译器似乎对我的语法存在一些问题。再次感谢!
public class MyNetwork implements Network {
Map<String, List<String>> stations = new HashMap<>();
@Override
public String[] getStations() {
/**
* Get all stations in the network.
* @return An array containing all the stations in the network, with no
* duplicates.
*/
return stations.toArray(new String[0]);
}
要更进一步,请参阅 sets 的 toArray() 方法。
一个小代码示例如下所示:
public String[] getStations() {
/* the reason you need to give the new String array to the toArray() method is,
so that the compiler knows that it is in fact an array of String, not just plain array of object */
return stations.keySet().toArray(new String[0]);
}
如果需要元素数组,请参阅 map.keySet().toArray()。
查看 Map API: Map#keySet()
(http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#keySet())。