繁体   English   中英

从ArrayList中选择某些数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM