我有一个ArrayList,如下所示:
sudo apt-get install npm
等...
在课堂上我有id值。我必须获取与id值对应的值。例如,如果我给id1,那么我需要value1和value2。我应该使用哪种收集机制来实现我的目标。我是初学者请建议我。提前致谢。欢迎提出所有建议。
答案 0 :(得分:1)
假设密钥类型为String
且值为String
类型。您可以使用Map<String, List<String>>
。
每个id
存储一个列表中的值,因此当您查找id
时,您可以检索所有值。
这是代码片段,它首先检查密钥是否已经存在,如果没有,则创建新的空列表。这些值将添加到列表中并放入地图中。您可以使用get(Key)
api从地图中检索值。
public void add(String key, String value) {
List<String> values = map.get(key);
if (values == null) {
values = new ArrayList<String>();
}
values.add(value);
map.put(key, values);
}
答案 1 :(得分:1)
考虑Guava的MultiMap:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html
Guava是一个来自Google的库,它提供了许多有用的实用工具,通常需要Java。