Hashmap wird nicht richtig befüllt

nchristoph

Erfahrenes Mitglied
Hallo Zusammen.

Ich arbeite mich gerade ein bissel in Java ein und hänge jetzt bei einer Hashmap.

Java:
	public Map<Long,String> getAvailableMusic(CreatureObject actor) {
		
		Map<Long,String> music = new HashMap<Long, String>();
		for (int index : musicMaptest.keySet()) {
			music.put( new Long( musicMaptest.get(index).getInstrumentAudioId()), musicMaptest.get(index).getPerformanceName() );
		}
		
		return music;
		
	}

Mein Problem: die Hashmap wird nicht richtig befüllt.

Wenn ich mir die Inhalte von getInstrumentAudioId und getPerformanceName ausgeben lasse, steht das richtige drinnen, wenn ich allerdings musicMaptest ausgeben lasse, kriege ich nur nen Index 0 Fehler.

Meine Fragen:

Kann ich mir die Hashmap wie ne ExcelTabelle vorstellen wo es Spalten A-Z und Zeilen 1 - 65535 gibt und jede Spalte einen Namen hat?

Sollte das so sein, kann ich mir die Hashmap auch so ausgeben lassen, damit ich sehe ob ich beim Übernehmen der Felder einen Fehler gemacht habe?

Danke im vorraus.
 

youza

Erfahrenes Mitglied
Eine Hashmap kannst du dir vorstellen wie ein 2-Dimensionales Array, nur dass du bei beiden Feldern einen Datentyp zuweist somit entstehen Wertepaare:

Wertepaar 1: (1L, "asdf")
Werteparr 2: (500L, "sdfe")

Einfaches Beispiel:


Java:
import java.util.HashMap;
import java.util.Map;

public class Snippet {
    public static void main(String[]args){
        Map<Long, String> test = getAvailableMusic();
        for (int i = 0; i < test.size(); i++) {
            System.out.println("Eintrag Nr " + i + "\t " + test.get((long)i));
        }
    }
    private static Map<Long,String> getAvailableMusic() {
        
           Map<Long,String> music = new HashMap<Long, String>();
          for (int i = 0; i < 10; i++) {
            music.put( new Long(i), "Value " + String.valueOf(i));
        }
           return music;
        
       }
}