处理中的多图

时间:2015-08-05 07:31:12

标签: java hashmap processing multimap

我想知道在Processing IDE中使用multimap的方法。

我可以使用任何库吗?

我需要在地图中为同一个键添加多个值。

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您可以添加以下库

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!)
 }
}

您可以从这里下载

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

答案 1 :(得分:1)

Multimap似乎是Apache commons集合库的一部分。从here(commons-collections4-4.0-bin.zip)下载包含它的zip文件解压缩并从那里获取jar文件(commons-collections4-4.0.jar)。然后,您必须在草图文件夹中创建一个名为&#34; code&#34;的文件夹。把罐子放在那里......!

以下是如何在处理中使用它的示例:

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);
 }
}

...或者,如果您知道只将字符串作为值,则不需要导入:

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);
 }
}

......或者,滚动你自己!像这样:

// 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");