簡體   English   中英

如何從HashMap獲取字符串鍵?

[英]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<>();

這意味着keyvalue都將為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM