2015-08-05 1 views
0

Je voudrais savoir comment utiliser multimap dans Processing IDE.Multimap dans le traitement

Y a-t-il des bibliothèques que je peux utiliser?

Je dois ajouter plusieurs valeurs pour la même clé dans une carte.

Votre aide est grandement appréciée.

Répondre

1

Vous pouvez ajouter ci-dessous bibliothèque

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Multimap.html

Multimap<String,Object> myMultimap = ArrayListMultimap.create(); 

public class MutliMapTest { 
    public static void main(String... args) { 
    Multimap<String, String> myMultimap = ArrayListMultimap.create(); 

    // Adding some key/value 
    myMultimap.put("Fruits", "Bannana"); 
    myMultimap.put("Fruits", "Apple"); 
    myMultimap.put("Fruits", "Pear"); 
    myMultimap.put("Vegetables", "Carrot"); 

    // Getting the size 
    int size = myMultimap.size(); 
    System.out.println(size); // 4 

    // Getting values 
    Collection<String> fruits = myMultimap.get("Fruits"); 
    System.out.println(fruits); // [Bannana, Apple, Pear] 

    Collection<String> vegetables = myMultimap.get("Vegetables"); 
    System.out.println(vegetables); // [Carrot] 

    // Iterating over entire Mutlimap 
    for(String value : myMultimap.values()) { 
    System.out.println(value); 
    } 

    // Removing a single value 
    myMultimap.remove("Fruits","Pear"); 
    System.out.println(myMultimap.get("Fruits")); // [Bannana, Pear] 

    // Remove all values for a key 
    myMultimap.removeAll("Fruits"); 
    System.out.println(myMultimap.get("Fruits")); // [] (Empty Collection!) 
} 
} 

Vous pouvez télécharger ici

https://code.google.com/p/guava-libraries/

+0

Merci, Comment puis-je importer cette bibliothèque dans le traitement de l'EDI? – Hasala

+0

Si vous utilisez 'Eclipse', ajoutez alors dans votre projet' lib' le dossier 'Processing IDE', je n'ai aucune connaissance. –

+0

Ce lien de téléchargement a seulement quelques fichiers PDF. N'est-ce pas? Ne devrait-il pas y avoir de fichiers jar? L'ajout de libs dans Processing IDE est le même que dans Eclipse. – Hasala

1

Multimap semble être une partie de la bibliothèque de collections communes Apache. Téléchargez le fichier zip qui le contient de here (commons-collections4-4.0-bin.zip) décompressez-le et prenez le fichier jar (commons-collections4-4.0.jar) à partir de là. Vous devez ensuite créer un dossier dans votre dossier d'esquisse appelé "code" et y mettre le pot ...!

Voici un exemple comment l'utiliser dans le traitement:

import java.util.Collection; 

void setup() { 
MultiMap mhm = new MultiValueMap(); 
mhm.put("Fruit", "Apple"); 
mhm.put("Fruit", "Banana"); 
mhm.put("Fruit", "Kiwi"); 
Collection coll = (Collection) mhm.get("Fruit"); 
for(Object o: coll) { 
    println(o); 
} 
} 

... ou, vous n'avez pas besoin de l'importation si vous savez que vous ne mettre des chaînes comme valeurs:

void setup() { 
MultiMap mhm = new MultiValueMap(); 
mhm.put("Fruit", "Apple"); 
mhm.put("Fruit", "Banana"); 
mhm.put("Fruit", "Kiwi"); 
ArrayList<String> coll = (ArrayList<String>) mhm.get("Fruit"); 
for(String o: coll) { 
    println(o); 
} 
} 

... ou lancez le vôtre! Comme ceci:

// This essentially says that you want to create a map 
// with keys of type String and values of type List of String 
Map<String, List<String>> myMap = new HashMap<String,List<String>>(); 

// add a new ArrayList of Strings in the map: 
myMap.put("Fruits",new ArrayList<String>()); 

// add Strings in the list: 
myMap.get("Fruits").add("Apple"); 
myMap.get("Fruits").add("Banana"); 
+0

Merci, pourriez-vous s'il vous plaît élaborer ceci par un exemple? – Hasala

+0

@Hasala yep, voilà –

+0

Merci Petros. Votre aide est tres apprecie. – Hasala