2015-06-15 17 views
-1

下面所示的項目是我已經使用這個代碼從地圖得到的值在用java索引

String amountCheck=(String) productsFieldMap.get("PRODUCT_TYPE.PRODUCT_AMT"); 
從調試地圖

{0={PRODUCT_TYPE.PRODUCT_AMT=200}}

要存儲在一個字符串這個值所獲得的結果

但是,這似乎並不奏效。任何人都可以建議我採取這種方式嗎? productsFieldMap表示存儲值的映射。

+1

「似乎沒有工作」是什麼意思?請詳細說明。 –

+0

我期待在該字符串中獲得值200。 –

+0

請給我們提供'productsFieldMap'的定義。 – CptBartender

回答

2

我相信,你正在尋找獲得根據value一個key

你不能根據一個值key,爲get()接受key,而不是一個值。

如果你想這樣做,你需要迭代HashMap並獲得匹配的值並返回它的關鍵。

public static <T, E> T getKeyByValue(Map<T, E> map, E value) { 
for (Entry<T, E> entry : map.entrySet()) { 
    if (Objects.equals(value, entry.getValue())) { 
     return entry.getKey(); 
    } 
} 
return null; 
} 
+0

獲取特定索引可消除該問題。這是讓我感到困惑的一點 –

1

我錯過了這裏的東西,並與此我能夠得到所需的輸出。

Map result = (Map) productsFieldMap.get(0); 
String amountCheck = (String) result.get("PRODUCT_TYPE.PRODUCT_AMT"); 
+0

如果這是您的答案,請將其標記爲已接受。 – Alex

+0

我需要等兩天才能做到這一點。 –

2

試試這個找出地圖究竟包含:

for (Object key : productsFieldMap.keySet()) { 
    System.out.println(key.toString() + ", " + productsFieldMap.get(key)); 
}