2017-07-18 56 views
0

HashMap<Shop, String> shopMap反對,我就把兩個值:比較對象從哈希表中的Android

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

在我的方法搜索店鋪的名字我經過店鋪的對象像shopModel1等同於獲得了他的名字:

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

但我得到空。對象具有相同的所有值。有什麼方法可以使用對象從哈希映射中獲取商店名稱?

+3

shopMap(shopModel1.getName(),shopModel1);嘗試與反向 – Pavya

+0

你在哪裏把數據放在shopMap中? – akhilesh0707

+0

它取決於'Shop'內的'equals()'/'hashCode()'實現。在你的案例中最簡單的解決方案可能只是交換你的鍵/值,所以'getName()'被用作鍵,儘管你當然也可以使用'Shop'作爲你的鍵。 – PPartisan

回答

1

將對象作爲關鍵值是不好的。按名稱映射。

我猜對象映射,實際上,它發生在對象的內存地址。然後在地圖上搜索它不會比較對象字段的對象,只是地址。

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