2010-10-27 4 views
0
Map<String,MyData> map = new HashMap<String,MyData>(); 
... 
static class MyData { 
    String theString; 
    Bitmap theBitmap; 
    int theInt; 
    ... 
} 

Comment puis-je mettre des données dans cette carte ???Carte avec propre Datatyp (Java)

map.put("xxx", new MyData()); // Does not work 

Merci;)


Oui désolé, j'Aked la mauvaise question;)

Je MENT comment puis-je écrire dans ... dada à

comme pour theString = "aaa", theInt = 22, etc ....

Merci

+1

Quelle erreur obtenez-vous? – jjnguy

+1

C'est Java, pas JAVA –

+0

merci seanizer;) – Denny

Répondre

1
Map<String,MyData> map = new HashMap<String,MyData>(); 
... 
class MyData { 
    String theString; 
    Bitmap theBitmap; 
    int theInt; 
    ... 
} 

Voir si c'est mieux.

+0

Oh, classe statique .... Bonne prise. – jjnguy

+0

Apparemment non - je préfère la réponse ci-dessous le mien. Je vote pour ça. – duffymo

1

Bien sûr, il fonctionne:

import java.util.*; 

public class Test { 

    static class MyData { 
     String theString; 
     byte[] theBitmap; 
     int theInt; 
    } 

    public static void main(String... args) { 
     Map<String,MyData> map = new HashMap<String,MyData>(); 
     map.put("xxx", new MyData()); 

     System.out.println(map); 
    } 
} 

Cette compile bien, et imprime:

{[email protected]} 
1

Peut-être que vous voulez faire:

MyData someData = new MyData(); 
someData.theString = "toto"; 
someData.theString = 1; 
map.put("xxx", someData); 
someData = new MyData(); 
someData.theString = "tutu"; 
someData.theString = 2; 
map.put("xxx", someData); 
0

Sur la base de votre commentaire (er .. réponse?) Je vais deviner que vous avez oublié d'ajouter un constructeur à la classe MyData.

Le constructeur doit être quelque chose comme:

public MyData(String str, Bitmap bmap, int val) 
    { 
    // assign the the instnace values and whatever else you neeed to do. 
    } 

Cependant, lorsque vous demandez ce genre de question s'il vous plaît inclure le texte du message d'erreur afin que nous ne devons pas deviner pour vous donner des réponses. Aussi si vous avez des changements à votre question les mettre dans la question ne répondez pas (stackoverflow n'est pas vraiment utilisé comme un forum de discussion :-)