从android中的哈希映射比较对象到对象

时间:2017-07-18 12:08:22

标签: android hashmap

我有HashMap<Shop, String> shopMap我放了两个值:

shopMap(shopModel1, shopModel1.getName());
shopMap(shopModel2, shopModel2.getName());

在我的搜索商店名称方法中,我通过shopModel1相同的商店对象获取他的名字:

public String getNameForShop(Shop filter) {
        return shopMap.get(filter);
    }

但我得到了空。对象具有相同的所有值。有什么方法可以使用对象从哈希映射中获取商店名称吗?

1 个答案:

答案 0 :(得分:1)

将对象作为键值是不可行的。按名称映射。

我猜对象的映射,事实上,它发生在对象的内存地址上。然后在地图中搜索不比较对象字段的对象,只搜索地址。

HashMap<String, Shop> shopMap;
if( shopMap.get("shopname").equals(anotherShop) ){
    //do staff
}