mapa de teclado Java HashMap no se ve bien

LearnNETandJava:

¿Podría alguien por favor verifique dos veces para ver lo que pasa a mi código de abajo que sería apreciada. He intentado muchas veces y de diferentes maneras, pero todavía me dan el resultado que nunca esperaba.

A continuación se muestra el método que volver a los valores Mapa

Hice 1 llamada, la transferencia de valor == 0, funciona muy bien.

-> Resultado funciona bien, la primera clave = 0 y el valor correcto y los correctos.

I hizo segundo llamado con pase-en el valor = 1

-> resultado es incorrecto, la primera clave == 16 donde esperaba que debe ser = 12

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;
}

Por favor avise. Gracias de antemano.

tiempos:

HashMap no sigue el orden de inserción. Si desea que el orden que debe seguirse en orden de inserción, LinkedHashMap uso

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=410431&siteId=1
Recomendado
Clasificación