[英]How to get String key from HashMap?
我有一個帶有字符串鍵和字符串值的HashMap。 我想從列表中獲取一個項目,我試圖提供鍵並想要獲取值,但它給出了一個錯誤。 以下示例如何通過給鍵“ blazer”獲得“兩個”值?
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"));
那兒upper.get(upper.get("blazer"));
只會返回null。
您正在將upper.get("blazer")
(將返回“兩個”)傳遞到外部upper.get
。 由於您的地圖中沒有存儲“兩個”鍵,因此它返回null。
應該:
upper.get("blazer");
知道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
值,該值指示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));
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.