J'étudie avec Hashmap avec plusieurs paramètres (1 clé, 2 valeurs) Et j'ai pu trouver Apache multiValueMap pour mon problème.
Voici mes codes pour multiValueMap.
import Java.util.Set;
import org.Apache.commons.collections.map.MultiValueMap;
import org.Apache.commons.collections.MultiMap;
public class multiValueMap {
public static void main(String args[]) {
String a, b, c;
MultiMap mMap = new MultiValueMap();
mMap.put("a", "Hello there, It's a wonderful day");
mMap.put("a", "Nice to meet you");
Set<String> keys = mMap.keySet();
for (String key : keys) {
System.out.println("Key = " + key);
System.out.println("Values = " + mMap.get(key));
a = String.valueOf(mMap.get(key));
System.out.println("A : " + a);
}
}
}
// The result as below
Key = a
Value = [Hello there, It's a wonderful day, Nice to meet you]
A : [Hello there, It's a wonderful day, Nice to meet you]
Voici ma question Comment puis-je stocker la première valeur pour la chaîne b et la seconde pour c? Si je sous-chaîne les valeurs de MultiMap dépend de "," alors il ne stockera Bonjour que là-bas . donnez-moi vos conseils utiles.
Vous pouvez essayer de suivre:
String a, b, c;
MultiMap mMap = new MultiValueMap();
mMap.put("a", "Hello there, It's a wonderful day");
mMap.put("a", "Nice to meet you");
Set<String> keys = mMap.keySet();
for (String key : keys) {
System.out.println("Key = " + key);
System.out.println("Values = " + mMap.get(key));
List<String> list = (List<String>) mMap.get(key);
b = list.get(0);
c = list.get(1);
System.out.println("B : " + b);
System.out.println("C : " + c);
}
Vous n'êtes pas obligé de faire une scission. Voici la documentation de MultiMap qui se trouve:
MultiMap mhm = new MultiHashMap();
mhm.put(key, "A");
mhm.put(key, "B");
mhm.put(key, "C");
Collection coll = (Collection) mhm.get(key);
Maintenant, lorsque vous effectuez un appel get()
sur une carte multiple, cela vous donne une collection. Le premier élément sera votre b et le second sera votre c.
Vous pouvez également utiliser une clé et un objet pour stocker plusieurs valeurs dans Multimap . Quelque chose comme ceci, MultiValueMap mv = new LinkedMultiValueMap <~> ();