如何从HashMap获取String键?

时间:2018-05-29 16:44:54

标签: java android android-studio hashmap getvalue

我有一个带有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

2 个答案:

答案 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<>();

这意味着keyvalue都属于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