我有一个带有String键和String值的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
答案 0 :(得分:1)
他们在那里拥有它upper.get(upper.get("blazer"));
只会返回null。
您将upper.get("blazer")
(将返回&#34;两者&#34;)传递到您的外upper.get
。因为你没有&#34;两个&#34;存储在地图中的密钥,它返回null。
应该是:
upper.get("blazer");
答案 1 :(得分:1)
了解upper.get(key)
不会返回boolean
值。您已按照以下方式定义了HashMap
:
HashMap<String,String> upper = new HashMap<>();
这意味着key
和value
都属于String
类型。因此,提供有效key
get()
方法将返回String
:
String myValue = upper.get("blazer");
如果您希望在尝试读取值之前检查key
是否可用,则可以使用containsKey()
方法返回boolean
值,以指示{{1}包含具有给定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