J'ai besoin de créer un hashmap avec key en entier et il devrait contenir plusieurs valeurs de types de données différents. Par exemple, si la clé est msg id et que les valeurs sont
Alors, comment stocker les valeurs de différents types de données avec une seule clé dans la table de hachage?
Vous avez certaines variables qui sont de types différents en langage Java comme celui-ci:
message of type string
timestamp of type time
count of type integer
version of type integer
Si vous utilisez un HashMap comme:
HashMap<String,Object> yourHash = new HashMap<String,Object>();
yourHash.put("message","message");
yourHash.put("timestamp",timestamp);
yourHash.put("count ",count);
yourHash.put("version ",version);
Si vous voulez utiliser le yourHash:
for(String key : yourHash.keySet()){
String message = (String) yourHash.get(key);
Datetime timestamp= (Datetime) yourHash.get(key);
int timestamp= (int) yourHash.get(key);
}
Définissez une classe pour stocker vos données en premier
public class YourDataClass {
private String messageType;
private Timestamp timestamp;
private int count;
private int version;
// your get/setters
...........
}
Et puis initialisez votre carte:
Map<Integer, YourDataClass> map = new HashMap<Integer, YourDataClass>();
Créez un objet contenant les propriétés suivantes avec un nom approprié.
et l'utiliser comme une valeur dans votre carte.
Pensez également à remplacer les méthodes equals () et hashCode () si vous ne souhaitez pas que l'égalité d'objet soit utilisée pour la comparaison (par exemple, lors de l'insertion de valeurs dans votre carte).
Faites simplement comme ci-dessous ....
HashMap<String,Object> yourHash = new HashMap<String,Object>();
yourHash.put(yourKey+"message","message");
yourHash.put(yourKey+"timestamp",timestamp);
yourHash.put(yourKey+"count ",count);
yourHash.put(yourKey+"version ",version);
dactylographier la valeur tout en revenant . Pour ex:
int count = Integer.parseInt(yourHash.get(yourKey+"count"));
//or
int count = Integer.valueOf(yourHash.get(yourKey+"count"));
//or
int count = (Integer)yourHash.get(yourKey+"count"); //or (int)