2016-11-06 49 views
1

我試圖將字母表中的每個字母與其相應的數字關聯。 0 = a,1 = b,2 = c等迭代數字和字母爲散列圖

雖然我的號碼正確排序,但我的信件都是以「z」出現的。我做錯了什麼(用我的循環)?

public static void cipherMap (Map<Integer, Character> map) { 
    for (int i = 0; i <= 25; i++) { 
     for (Character alphabet = 'a'; alphabet <= 'z'; alphabet++) { 
      map.put(new Integer(i), alphabet); 
     } 
    } 
} 

輸出:

0: z 
1: z 
2: z 
3: z 
4: z 
5: z ... so on 
+2

因爲你循環遍歷整個字母,而在相同的「我」迭代......你的值只是被覆蓋,直到z – Li357

回答

2

你的內循環的最後一個步驟設置每iz。刪除內循環,並做類似的事情,

public static void cipherMap (Map<Integer, Character> map) { 
    for (int i = 0; i <= 25; i++) { 
     map.put(i, (char) ('a' + i)); 
    } 
}