我想知道,如果我知道一个ArryList的一个部分,我可以找到另一个部分。我遇到的问题是我对java的知识有限。
我的名单是:
spotsList = new ArrayList<HashMap<String, String>>();
该活动贯穿整个过程,并将每个点(从服务器)添加到for循环中的列表中,PID和NAME为:
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_PID, id);
map.put(TAG_NAME, name);
spotsList.add(map);
如果我知道PID的话,有什么办法可以得到这个名字吗?
提前谢谢你,
泰勒
发布于 2014-01-28 15:05:17
您可能应该使用域类而不是HashMap
来保存数据。如果这样做,您可以轻松地搜索集合中的特定值。
public class Spot {
private final String pid;
private final String name;
public Spot(String pid, String name) {
this.pid = pid;
this.name = name;
}
// getters
}
您还需要添加重写equals()
和hashCode()
。
然后使用地图而不是列表:
Map<String,Spot> spots = new HashMap<String,Spot>();
spots.put(pid, new Spot(pid, name));
然后找到一个:
Spot spot = spots.get(pid);
发布于 2014-01-28 14:52:50
似乎您希望PID是唯一的(给定PID,您可以找到相应的名称)。因此,您应该使用一张地图,而不是一张地图列表:
Map<String, String> map = new HashMap<String, String>();
for (Spot s : spots) map.put(s.id, s.name);
然后,从pid中检索名称只是一个简单的问题:
String name = map.get(pid);
https://stackoverflow.com/questions/21418578
复制相似问题