Java HashMap

Dieses Thema im Forum "Webmaster Hilfe / Programmierer Forum" wurde erstellt von Blaxxun, 26.04.2013.

  1. #1 Blaxxun, 26.04.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Ich versuche seit gestern herauszufinden warum folgende Zeile bei mir einen Fehler auswirft. Ich würde gerne eine HashMap erstellen, deren Schlüssel ein Integer ist, und als Wert ein Integer Array enthält.

    Code:
        static protected final HashMap<Integer,Integer[]>  SHIPS = new HashMap().put(Config.FIELD_SIZE[0], new Integer[] { 2 });
    Der Compiler schlägt mir vor das wie folgt zu casten
    Code:
        static protected final HashMap<Integer,Integer[]>  SHIPS = (HashMap<Integer,Integer[]>) new HashMap().put(Config.FIELD_SIZE[0], new Integer[] { 2, 2, 3, 3, 4, 5 });
      
    Nach ein paar Zeilen Umbrüche lässt sich feststellen, dass er sich an dem Keyword new stört. Nur wieso?
     
  2. AdMan

    schau mal hier: Windows-Wartungs-Tool. Viele Probleme lassen sich damit einfach beheben. Oftmals ist der PC dann auch schneller!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren.
  3. deen

    deen Benutzer

    Dabei seit:
    25.10.2009
    Beiträge:
    55
    Zustimmungen:
    0
    Hi,

    du versuchst die Map zu initialisieren und direkt mit "put" diese zu befüllen.
    Put liefert laut Java-Doc folgendes zurück:
    the previous value associated with key, or null if there was no mapping for key. (A null return can also indicate that the map previously associated null with key.)

    Darum schlägt dir deine IDE vor zu casten, was aber natürlich auch nichts bringt ;)



    Also einfach erstmal die Map erzeugen lassen:

    Code:
    static protected final HashMap<Integer,Integer[]>  SHIPS = new HashMap<Integer, Integer[]>();
    
    und danach etwas in die Map einfügen

    Code:
    SHIPS.put(Config.FIELD_SIZE[0], new Integer[] { 2, 2, 3, 3, 4, 5 });
    
     
  4. #3 Blaxxun, 27.04.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
    Danke. Aber wäre ja anscheinend auch zu einfach wenn es jetzt funktionieren würde.
    Die Initialisierung klappt problemlos. Aber es handelt sich um eine finale Klasse, also mit privatem Konstruktor. Ich würde dort gerne eine Konfigurationseinstellen speichern.
    Ich kann jedoch nicht einfach
    SHIPS.put(Config.FIELD_SIZE[0], new Integer[] { 2, 2, 3, 3, 4, 5 });hinschreiben außerhalb einer Methode. Es wird nie eine Instanz der Klasse gebildet, wie bekomm ich die HashMap trotzdem gefüllt?
     
  5. deen

    deen Benutzer

    Dabei seit:
    25.10.2009
    Beiträge:
    55
    Zustimmungen:
    0
    Benutze einen static-Block.

    Hier ein Beispiel:

    Code:
    import java.util.HashMap;
    
    
    public class App {
    
        static protected final HashMap<Integer,Integer[]>  SHIPS = new HashMap<Integer, Integer[]>();
        
        static {
            SHIPS.put(0, new Integer[] { 2, 2, 3, 3, 4, 5 });
            SHIPS.put(1, new Integer[] { 5, 5, 5, 5, 5, 8 });
            SHIPS.put(2, new Integer[] { 2, 3, 1, 6, 4, 9 });
        }
        
        public static void main(String[] args) {
            
            for(Integer key : SHIPS.keySet()) {
                Integer[] value = SHIPS.get(key);
                System.out.print("Key: " + key + " contains value {");
                for(Integer val : value) {
                    System.out.print(val + " ");
                }
                System.out.print("}\n");
                
            }
        }
    
    }
    
     
  6. #5 Blaxxun, 27.04.2013
    Blaxxun

    Blaxxun aka Noisy

    Dabei seit:
    06.11.2005
    Beiträge:
    6.171
    Zustimmungen:
    0
Thema: Java HashMap
Besucher kamen mit folgenden Suchen
  1. java dldr.Void trojaner

Die Seite wird geladen...

Java HashMap - Ähnliche Themen

  1. Tastaturtester mit Java

    Tastaturtester mit Java: Hallo Leute, ich wollte gerade mal auf die Schnelle ein Tastaturtester mit Java bauen. Grund ist ein neuer Encoder, der nächste Woche...
  2. Java 7

    Java 7: Hallo :) Ich kann mir kein Java Installieren weil er mir in den Programmen schon "Java 7 Update 9" anzeigt. Deinstallieren funktioniert auch...
  3. Java-Programmierung - Fehler bei Ausführung

    Java-Programmierung - Fehler bei Ausführung: Ich habe kürzlich begonnen, mich mit der Programmierung in Java zu beschäftigen. Auf meinem PC habe ich Windows 8 laufen und verwende dias Java...
  4. Hauptmenü für Spiel in Java

    Hauptmenü für Spiel in Java: Hallo Leute, ich habe ein kleines Problem. Ich sollte für die Uni ein Spiel in Java schreiben und habe mich dabei für das Applet entschieden,...
  5. java

    java: Hallo, täglich kommt ein Fenster mit: - JAVA - laden sie eine wesentliche Ergänzung auf ihren PC! Installer_java_deutsch.exe (könnte ihren PC...