2013-05-23 4 views
7

Sto programmando la mia prima app e sto cercando di creare una mappa che memorizzerà alcune informazioni.Inserimento di valori in Mappa < K, V >

Sto usando ECLIPSE e continuo a ricevere lo stesso errore, ma ho cercato su Google (in realtà DuckDuckGo-ed) e ho cercato in StackOverflow e non riesco a trovare l'errore ... Quindi sono disperatamente venuto qui.

Le librerie sono importate correttamente (poiché l'ADT lo fa) e suppongo che la documentazione Oracle sia a posto, quindi ... perché non funziona?

Voglio dire, nessuno dei due metodi funziona per inserire una coppia chiave-valore nella mappa.

enter image description here

La parte interessante arriva quando guardando gli errori.

Il primo dice Syntax error on token ",", { expected after this token
Il secondo dice Syntax error, insert "}" to complete ClassBody

sto iniziando a ottenere un po 'disperato, non ho potuto rendere il codice più semplice! Grazie mille!

+4

Hai bisogno del tuo codice all'interno di una sorta di metodo. –

risposta

37

Ci sono due problemi qui. Innanzitutto devi metterlo in un metodo, e in secondo luogo, non puoi usare la sintassi []; è necessario utilizzare Map.put.

public class Data { 
    public static void main(String[] args) { 
     Map<String, String> data = new HashMap<String, String>(); 
     data.put("John", "Taxi Driver"); 
     data.put("Mark", "Professional Killer"); 
    } 
} 
+0

Grazie! Non sapevo che dovesse essere all'interno di un metodo. Ho provato tutte le altre cose tranne che (dato che non ne avevo idea). Mi dispiace se era una domanda troppo facile da chiedere, ma vado su StackOverflow solo quando mi sto disperando. Grazie ancora – Nico

2

La sintassi è

data.put("John","Taxi driver"); 
+0

Sì, ma neanche questo funziona. Ed è per questo che ho provato la sintassi '[]'. Grazie! – Nico

2

provare questo codice

HashMap<String, String> map = new HashMap<String, String>(); 
map.put("EmpID", EmpID); 
map.put("UnChecked", "1"); 
3

I due errori presenti nel codice sono molto diversi.

Il primo problema è che si sta inizializzando e compilando il proprio Map nel corpo della classe senza un'istruzione. È possibile avere un'istruzione Map statica e un'istruzione static {//TODO manipulate Map} nel corpo della classe oppure inizializzare e compilare la mappa in un metodo o nel costruttore della classe.

Il secondo problema è che non si può trattare un Map sintatticamente come un array, così la dichiarazione data["John"] = "Taxi Driver"; dovrebbe essere sostituito da data.put("John", "Taxi Driver"). Se si dispone già di una chiave "John" nel proprio HashMap, il suo valore verrà sostituito con "Taxi Driver".