myHashMap.put(Object,Object) ?

JuSTuS24

Grünschnabel
Hallo,
ich habe ein kleines Problem mit HashMap. Ich möchte in eine HashMap 2 Werte eintragen. 1 key + 1 charArray-Element. Der key ist ein einfacher Counter und vom Typ int. Wo wir auch schon bei meinem Problem sind. Laut Syntax erwartet die Methode put 2 Objekte als Parameter!
Nun meine Frage wie mache ich aus dem int ein Objekt?

meine Code sieht folgendermaßen aus:

for (int n = 0; n < myCharArray.length; n++) {

while (!myHashMap.containsValue(myCharArray[n])) { // Solange das Zeichen n nicht in HashMap enthalten füge es ein

myHashMap.put( count , myCharArray[n]); // Einfügen des Zeichens + Code

count = count + 1; // Codewort + 1
}
}
 
darauf bin auch auch gerade gekommen aber trotzdem danke Erdal!

Jetzt hab ich aber ein neues Problem.
vorweg zur Erklärung, ich habe ein textfeld aus dem ich ein String einlese und diesen dann in ein charArray kopiere so das jedes Zeichen ein Element des Arrays ist. nun will ich jedes Zeichen des Array in eine HashMap schreiben aber jedes Zeichen nur einmal, also kein Zeichen doppelt. Danach soll mir ein String ausgegeben werden der aus den keys der Zeichen besteht.

Bsp. Eingabe: NACHRICHTEN
ArrayInhalt: N,A,C,H,R,I,C,H,T,E,N
HashMap: 1=N; 2=A; 3=C; 4=H; 5=R; 6=I; 7=T; 8=E
Ausgabe: 12345678

kann mir da einer einen passende Implementierung zeigen?
 
Für Java 1.4
Java:
for(int i = 0; i < myCharArray.length; i++) {
    if(myHashMap.containsValue(new Character(myCharArray[i])))
        continue;
    myHashMap.put(new Integer(i), new Character(myCharArray[i]));
}

Falls du Java 5 benutzt
Java:
for(int i = 0; i < myCharArray.length; i++) {
    if(myHashMap.containsValue(myCharArray[i]))
        continue;
    myHashMap.put(i, myCharArray[i]);
}

Für die Ausgabe
Java:
Iterator _iter = myHashMap.keySet().iterator();
while(_iter.hasNext()) {
	System.out.print(_iter.next());
}
 
Zuletzt bearbeitet:
Hi,

es ist aber nicht sicher, dass die Werte in der Reihenfolge [12345678] ausgegeben werden.

Du kannst sie danach manuell sortieren oder über

Java:
hashMap.get(i);

und der Laufvariablen i auslesen, solange bis du als Rückgabe null erhältst.

Gruß

Romsl
 
Zurück