2013-11-22 18 views
0

我的問題是我如何通過這個Map循環,並根據它們的整數值找出一些兩個字符串之間的差異。我知道我需要一個「我」在我的for循環的某個地方,但我不知道如何實現它。如何根據它們的整數值在兩個字符串之間找到Map中的差異?

float getDifference(Map<String, Integer> qualities) 
{ 
    String myQuality = ""; 
    String yourQuality = ""; 
    float answer = 0; 
    for(int i = 0; i<qualities.size(); i++) 
     { 
     answer = qualities.get(myQuality) - qualities.get(yourQuality); 
     } 
    } 
+1

什麼是你想怎麼辦? – Taylor

+0

爲什麼是一個for循環需要,即使你這樣做答案= qualities.get(myQuality) - qualities.get(yourQuality);你會得到答案。 –

+0

我正在循環顯示具有某個整數值的質量圖。我的品質不會改變,但「你」具有多種品質,我需要循環穿過,找到每個「你」品質與我的距離。這就是爲什麼我有地圖。我是否應該不初始化String myQuality和yourQuality? – user3020133

回答

0

如果您知道myQualityyourQuality的值,則不需要循環。

0

只是這樣做沒有必要循環:

qualities.get(myQuality) - qualities.get(yourQuality)

0

還沒100%清楚你想要做什麼,但這裏是如何循環哈希映射:

float getDifference(Map<String, Integer> qualities) 
{ 
    String myQuality = ""; 
    float answer = 0; 
    for(Entry<String, Integer> quality : qualities.entrySet()) 
    { 
     answer += qualities.get(myQuality) - quality.getValue(); 
    } 
    return answer; 
} 

給我們更多的信息(具體的例子),我們可以幫助你更多。

0

如果要查找兩個字符串的映射值之間的差異,可以執行以下操作。

float getDifference(Map<String, Integer> qualities, String str1, String str2) 
{ 
    Integer int1 = qualities.get(str1); 
    Integer int2 = qualities.get(str2); 
    if(int1 != null && int2 != null) 
    return int1.intValue() - int2.intValue(); 

    return -9999; 
} 

說明

HashMap中存儲鍵值對。關鍵將在整個地圖中獨一無二。我們可以使用map.get(key)來獲取與該鍵相對應的值。

HashMap只能存儲對象,所以我們可以存儲Integer類的對象。在使用put()時,整型轉換會通過編譯器自動進行。但在獲取價值的同時,我們應該檢查null。

保持-9999或某些值可以告訴你,或者您的第一個字符串或者第二個字符串不存在於地圖上的關鍵

相關問題