首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >从ArrayList中选择某些数据

从ArrayList中选择某些数据
EN

Stack Overflow用户
提问于 2014-01-28 14:48:12
回答 2查看 84关注 0票数 0

我想知道,如果我知道一个ArryList的一个部分,我可以找到另一个部分。我遇到的问题是我对java的知识有限。

我的名单是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
spotsList = new ArrayList<HashMap<String, String>>();

该活动贯穿整个过程,并将每个点(从服务器)添加到for循环中的列表中,PID和NAME为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HashMap<String, String> map = new HashMap<String, String>();
                    map.put(TAG_PID, id);
                    map.put(TAG_NAME, name);
spotsList.add(map);

如果我知道PID的话,有什么办法可以得到这个名字吗?

提前谢谢你,

泰勒

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-28 15:05:17

您可能应该使用域类而不是HashMap来保存数据。如果这样做,您可以轻松地搜索集合中的特定值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

然后使用地图而不是列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Map<String,Spot> spots = new HashMap<String,Spot>();
spots.put(pid, new Spot(pid, name));

然后找到一个:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Spot spot = spots.get(pid);
票数 1
EN

Stack Overflow用户

发布于 2014-01-28 14:52:50

似乎您希望PID是唯一的(给定PID,您可以找到相应的名称)。因此,您应该使用一张地图,而不是一张地图列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Map<String, String> map = new HashMap<String, String>();
for (Spot s : spots) map.put(s.id, s.name);

然后,从pid中检索名称只是一个简单的问题:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String name = map.get(pid);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21418578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文