如何从 HashMap 中获取字符串键?
How to get String key from HashMap?
我有一个包含字符串键和字符串值的 HashMap。我想从列表中获取一个项目,我试图提供密钥并希望获得价值,但它给出了一个错误。
以下示例如何通过给定键 "blazer"?
获取 "both" 值
HashMap<String,String> upper = new HashMap<>();
upper.put("shoulder","both");
upper.put("blazer","both");
if(upper.get(upper.get("blazer"))) {} //gives an "incompatible types" error.
//Error: Required: boolean Found: java.lang.String
按照他们的方式,你在那里 upper.get(upper.get("blazer"));
只会 return null。
您正在将 upper.get("blazer")
(这将 return "both")传递给您的外部 upper.get
。由于您的地图中没有存储 "both" 键,因此它 return 为空。
应该是:
upper.get("blazer");
了解 upper.get(key)
不会 return 成为 boolean
值。您已将 HashMap
定义如下:
HashMap<String,String> upper = new HashMap<>();
这意味着 key
和 value
都是 String
类型。因此,提供一个有效的 key
get()
方法将 return 一个 String
:
String myValue = upper.get("blazer");
如果您想在尝试读取值之前检查 key
是否可用,您可以使用方法 containsKey()
将 return 设为 boolean
值指示 HashMap
是否包含具有给定 key
:
的条目
if(upper.containsKey("blazer")){
String myValue = upper.get("blazer");
Log.e(TAG, "Yes blazer is available : " + myValue);
}
else{
Log.e(TAG, "No blazer is available!");
}
您还可以像这样遍历可用的 key
:
Set<String> set = map.keySet();
for(String s : set){
Log.e(TAG, "Map key = " + s + " value = " + map.get(s));
}
我有一个包含字符串键和字符串值的 HashMap。我想从列表中获取一个项目,我试图提供密钥并希望获得价值,但它给出了一个错误。 以下示例如何通过给定键 "blazer"?
获取 "both" 值 HashMap<String,String> upper = new HashMap<>();
upper.put("shoulder","both");
upper.put("blazer","both");
if(upper.get(upper.get("blazer"))) {} //gives an "incompatible types" error.
//Error: Required: boolean Found: java.lang.String
按照他们的方式,你在那里 upper.get(upper.get("blazer"));
只会 return null。
您正在将 upper.get("blazer")
(这将 return "both")传递给您的外部 upper.get
。由于您的地图中没有存储 "both" 键,因此它 return 为空。
应该是:
upper.get("blazer");
了解 upper.get(key)
不会 return 成为 boolean
值。您已将 HashMap
定义如下:
HashMap<String,String> upper = new HashMap<>();
这意味着 key
和 value
都是 String
类型。因此,提供一个有效的 key
get()
方法将 return 一个 String
:
String myValue = upper.get("blazer");
如果您想在尝试读取值之前检查 key
是否可用,您可以使用方法 containsKey()
将 return 设为 boolean
值指示 HashMap
是否包含具有给定 key
:
if(upper.containsKey("blazer")){
String myValue = upper.get("blazer");
Log.e(TAG, "Yes blazer is available : " + myValue);
}
else{
Log.e(TAG, "No blazer is available!");
}
您还可以像这样遍历可用的 key
:
Set<String> set = map.keySet();
for(String s : set){
Log.e(TAG, "Map key = " + s + " value = " + map.get(s));
}