处理中的多图
Multimap in Processing
我想知道在 Processing IDE 中使用 multimap 的方法。
有没有我可以使用的库?
我需要为映射中的同一个键添加多个值。
非常感谢您的帮助。
您可以添加以下库
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!)
}
}
您可以从这里下载
Multimap 似乎是 Apache 公共集合库的一部分。从 here 下载包含它的 zip 文件 (commons-collections4-4.0-bin.zip) 解压缩并从那里获取 jar 文件 (commons-collections4-4.0.jar)。然后你必须在你的草图文件夹中创建一个名为 "code" 的文件夹并将罐子放在那里......!
这是一个如何在处理中使用它的例子:
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");
我想知道在 Processing IDE 中使用 multimap 的方法。
有没有我可以使用的库?
我需要为映射中的同一个键添加多个值。
非常感谢您的帮助。
您可以添加以下库
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!)
}
}
您可以从这里下载
Multimap 似乎是 Apache 公共集合库的一部分。从 here 下载包含它的 zip 文件 (commons-collections4-4.0-bin.zip) 解压缩并从那里获取 jar 文件 (commons-collections4-4.0.jar)。然后你必须在你的草图文件夹中创建一个名为 "code" 的文件夹并将罐子放在那里......!
这是一个如何在处理中使用它的例子:
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");