JavaのHashMapのキーマップが正しく表示されません

LearnNETandJava:

いくつかのいずれかが理解されるであろうと、以下の私のコードで何が間違っ見るためにダブルチェックをしてくださいでした。私は多くの時間と異なる方法を試してみましたが、それでも私が予想していなかった結果を与えます。

下の地図値を返す方法があります

私はそれがうまく動作します、パスの値== 0で、1が呼ばれました。

- >結果は罰金、最初のキー= 0と値が正しく、すべての正しい動作します。

私は価値のパス= 1と呼ばれる第二製

- >結果は間違って、私はそれが= 12であるべきである期待最初のキー== 16

public Map<Integer, String[]> noteNumberNoteNameMap;    
public Map<Integer, String[]> getNoteNumberNoteNameMap(int octave ) {
    noteNumberNoteNameMap = new HashMap<>();
    noteNumberNoteNameMap.put(12*octave+0,  new String[] { "C" });
    noteNumberNoteNameMap.put(12*octave+1,  new String[] { "C#", "Db" });
    noteNumberNoteNameMap.put(12*octave+2,  new String[] { "D" });
    noteNumberNoteNameMap.put(12*octave+3,  new String[] { "D#", "Eb" });
    noteNumberNoteNameMap.put(12*octave+4,  new String[] { "E" });
    noteNumberNoteNameMap.put(12*octave+5,  new String[] { "F" });
    noteNumberNoteNameMap.put(12*octave+6,  new String[] { "F#", "Gb" });
    noteNumberNoteNameMap.put(12*octave+7,  new String[] { "G" });
    noteNumberNoteNameMap.put(12*octave+8,  new String[] { "G#", "Ab" });
    noteNumberNoteNameMap.put(12*octave+9,  new String[] { "A" });
    noteNumberNoteNameMap.put(12*octave+10,  new String[] { "A#", "Bb" });
    noteNumberNoteNameMap.put(12*octave+11,  new String[] { "B" }); 
    return noteNumberNoteNameMap;
}

お知らせ下さい。前もって感謝します。

回:

HashMapのは、挿入順序に従っていません。あなたは注文が挿入順序、使用として追跡されるようにする場合のLinkedHashMap

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=410428&siteId=1