Может кто-нибудь перепроверить, чтобы увидеть, что не так с моим кодом ниже, что будет оценено. Я пробовал много раз и разными способами, но все равно дал мне результат, которого я никогда не ожидал.
Ниже приведен метод, который возвращает значения Map
Я сделал 1 вызванный, с передачей значения == 0, он работает просто отлично.
-> результат работает отлично, первый ключ = 0 и значение верное и все правильно.
Я сделал 2-й вызов с передачей значения = 1
-> результат НЕПРАВИЛЬНЫЙ, первый ключ == 16, где я ожидал, должен быть = 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;
}
Пожалуйста, сообщите. Заранее спасибо.