我有一个ArrayList,如下所示:
Id1, value1
Id1, value2
Id2, value1
Id2, value2
Id2, value3
Id3, value1
Id3, value2
Id3, value3
Id3, value4
Id3, value5
等等。
在一个类中,我有id值。我必须获取与id值对应的值。例如,如果我给id1,那么我需要value1和value2。我应该使用哪种收集机制来达到我的目标。我是初学者,请推荐我。提前谢谢。欢迎所有建议。
发布于 2016-01-01 17:27:55
假设键是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);
}
发布于 2016-01-01 17:35:01
以番石榴的MultiMap:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html为例
番石榴是Google的一个库,它提供了许多有用的实用程序,这在Java中是常见的。
https://stackoverflow.com/questions/34558300
复制相似问题