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