使用索引从 java 中的地图获取值
getting a value from a map in java with index
下图是调试地图的结果
{0={PRODUCT_TYPE.PRODUCT_AMT=200}}
为了将这个值存储在一个字符串中,我使用了这个代码
String amountCheck=(String) productsFieldMap.get("PRODUCT_TYPE.PRODUCT_AMT");
但这似乎不起作用。谁能建议我这样做的方法?
productsFieldMap 表示存储值的地图。
我在这里漏掉了一些东西,有了这个我就能得到想要的输出。
Map result = (Map) productsFieldMap.get(0);
String amountCheck = (String) result.get("PRODUCT_TYPE.PRODUCT_AMT");
试试看这张地图究竟包含什么:
for (Object key : productsFieldMap.keySet()) {
System.out.println(key.toString() + ", " + productsFieldMap.get(key));
}
我相信,您正在寻找基于 value
的 key
。
You cannot get the key
based on a value, as get()
accepts a key
, not a value.
如果你想这样做,你需要遍历 HashMap
并获取匹配值和 return 它的键。
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={PRODUCT_TYPE.PRODUCT_AMT=200}}
为了将这个值存储在一个字符串中,我使用了这个代码
String amountCheck=(String) productsFieldMap.get("PRODUCT_TYPE.PRODUCT_AMT");
但这似乎不起作用。谁能建议我这样做的方法? productsFieldMap 表示存储值的地图。
我在这里漏掉了一些东西,有了这个我就能得到想要的输出。
Map result = (Map) productsFieldMap.get(0);
String amountCheck = (String) result.get("PRODUCT_TYPE.PRODUCT_AMT");
试试看这张地图究竟包含什么:
for (Object key : productsFieldMap.keySet()) {
System.out.println(key.toString() + ", " + productsFieldMap.get(key));
}
我相信,您正在寻找基于 value
的 key
。
You cannot get the
key
based on a value, asget()
accepts akey
, not a value.
如果你想这样做,你需要遍历 HashMap
并获取匹配值和 return 它的键。
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;
}