我正在尝试编写一个方法,该方法将从 HashMap 返回字符串的 ArrayList 。
目前我有一个 HashMap ,其中包含一个 String 作为标识符(key?),以及一个 List ,类型为 String 包含与之关联的所有值。该程序旨在模仿火车/地铁导航工具,因此第一个 String 是站名,而arraylist是一系列显示所有连接站的字符串。
这是我到目前为止所做的,但目前不会编译。我知道还有其他几种方法正在工作,所以我只是把最后一个我遇到困难的方法(getConnections
)。
我非常喜欢这个,所以如果有人能指出我出错的地方,我真的很感激。
public class MyNetwork implements Network {
Map<String, List<String>> stations = new HashMap<>();
@Override
public String[] getConnections(String fromStation) {
/**
* Get a list of all stations directly connected to a given station.
*
* @pre fromStation has been added to the network by the method
* addStation.
* @param fromStation
* @return A list of all the stations to which there is a direct
* connection from fromStation.
*/
ArrayList<String> Connections = new ArrayList<>();
Set<String> keys = stations.keySet();
for (String k : keys) {
String keyValue;
keyValue = (stations.get(fromStation));
}
return fromStation;
}
答案 0 :(得分:2)
无需显式迭代Map
中的值,只需使用内置方法即可。整个getConnections()
实现可以用一行编写:
return stations.get(fromStation).toArray(new String[0]);
工作原理:
get()
List<String>
String[]
将其转换为toArray()
。对于类型安全,我们传递一个预期返回类型的数组或者,您也可以将返回类型更改为List<String>
,除非严格必要,否则无需将List
转换为数组;如果您决定这样做,则toArray()
调用是不必要的。