2016-06-18 16 views
1

Anstatt einige große Problem zu erklären, werde ich alles überspringen und liste die kleine Schleife, mit der ich kämpfe. Wie auch immer, ich muss den Schlüssel einer Karte drucken, also verwende ich einen speziellen Weg, um den Schlüssel zu drucken, indem ich den Wert und den Schlüssel umschalte.HashMap-Java-Programm Probleme

for (int i = 0; i < elementData.length; i++){ 
    System.out.print("[" + i + "]"); 
    for (Entry<HashEntry<E>, Integer> entry : foob.entrySet()){ 
     if (entry.getValue().equals(i)){ 
      System.out.print(entry.getKey().toString()); 
     } 
    } 
} 

Das ist mein Ziel: Drucken [0] [1] [2] [3] wie das den ganzen Weg bis 20. Zusammen mit dem 9-Nummern nach dem Zufallsprinzip zwischen diesen Zahlen in Pars gehen in der Basis auf meinem Programm. Hier ist mein Ergebnis:

[0][1][email protected][2][3][4][email protected][email protected][5][6][7][8][9][email protected][10][11] 

Also gibt es nur ein Trick nicht alle diese Maschinensprache aussehendes Material drucken zu machen. Wie auch immer, was muss ich tun? Sieht so aus, als ob 1 Sache nach [1], 2 Dinge nach [4], etwas nach [9] und so weiter käme. Danke!

Antwort

2

Also gibt es nur einen Trick, damit es nicht all diese Maschinensprache druckt?

Ja.

Versuchen Sie nicht, eine Instanz einer Klasse zu drucken, die Object.toString() nicht überschreibt. Diese "Maschinensprache, die Sachen schaut" ist einfach die Ausgabe von Object.toString().

jedoch ich vermuten, dass Ihre echten Code dies tut:

 if (entry.getValue().equals(i)){ 
     System.out.print(entry.toString()); 
    } 

weil "[email protected]" wie die Ausgabe sieht würden Sie erhalten, wenn Sie ein HashSet.HashEntry Objekt gedruckt. (Die andere Möglichkeit ist, dass Sie HashSet.HashEntry Objekte als Schlüssel in Ihrem Map verwendet haben.)

+0

Es ist der zweite; schau dir seinen Code an: Eintrag , Integer> Eintrag – midor

+0

Also was mache ich, um das zu beheben? Ist es eine einfache schnelle halbe Zeile Code-Reparatur? Vielen Dank! –

+0

Statt den 'HashEntry' zu drucken, sollten Sie die Schlüssel- oder Wertkomponente extrahieren und diese drucken. Das sieht jedoch alles sehr seltsam aus. Warum haben Sie eine 'Map', deren Einträge' HashEntry'-Objekte als Schlüssel haben? –