我正在编写一些代码来管理一个“虚拟”列车/地铁站点网络。我使用Map(String),(List)(String)类型的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]);
}
答案 0 :(得分:4)
请参阅地图的keySet()方法,更进一步,请参阅集合的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]);
}
答案 1 :(得分:1)
如果需要元素数组,请参阅map.keySet()。toArray()。
答案 2 :(得分:1)
查看地图API:Map#keySet()
(http://docs.oracle.com/javase/6/docs/api/java/util/Map.html#keySet())。