[英]Selecting certain data from ArrayList
我想知道是否我知道ArryList的一部分就可以找到另一部分。 我遇到的问题是我对Java的了解有限。
我将清单设置为:
spotsList = new ArrayList<HashMap<String, String>>();
该活动将继续进行,并将每个点(来自服务器)添加到forloop中具有PID和NAME的列表中,如下所示:
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_PID, id);
map.put(TAG_NAME, name);
spotsList.add(map);
现在,如果知道PID,有什么方法可以获取名称?
先感谢您,
泰勒
您似乎希望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);
您可能应该使用域类而不是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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.