Java 在android中,从包含键值的列表中获取值的最佳方式是哪个集合
我有一个ArrayList,如下所示:Java 在android中,从包含键值的列表中获取值的最佳方式是哪个集合,java,android,collections,Java,Android,Collections,我有一个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。我应该使用哪种收集机制来实现我的目标。我是一个初学者,请推荐我。提前谢谢。欢迎所有建议。假设键的
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。我应该使用哪种收集机制来实现我的目标。我是一个初学者,请推荐我。提前谢谢。欢迎所有建议。假设键的类型为
String
,值的类型为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);
}
public void add(字符串键、字符串值){
列表值=map.get(键);
如果(值==null){
值=新的ArrayList();
}
增加(价值);
map.put(键、值);
}
考虑番石榴的多重地图:
Guava是Google提供的一个库,它提供了许多有用的实用工具,这些工具在Java中是经常需要的。Ok我将使用HashMap进行收集。稍后哪种HaspMap方法会有用,这样当我给出一个Id值时,我应该从集合中获得相应的值。感谢您的快速回复,我的Id是字符串值,我将有数组列表。我必须将id传递给一个方法,并且必须获得包含该键的值列表。你能解释一下怎么做吗?我想这里已经解释过了。使用
String
而不是Integer
作为键。我也更新了。在add方法中,我们正在将值添加到列表中,对吗?我们将使用相同的方法获得与键值相关的值。如果我错了,请纠正我。我不理解add方法中的字符串参数。是的,它正在向列表中添加值。要返回值,可以使用MapAPI中的get(Key)
。Ok。非常感谢。拿(钥匙)这是对的吗?