* 1.ArrayListMultimap:
* ListMultimap是Multimap的一个扩展,也能够容纳相同的entries,同时支持随机访问一个特定key的值。
* SetMultimap是Multimap的一个扩展,不容许容纳相同的entries,也就是说如果有相同的key出现在SetMultimap中,那么这些key对应的值一定是不相同的。
* 2.ForwardingMultimap:
* 3.HashMultimap:
* 4.ImmutableListMultimap: Table是一个新的类型,有点象java.util.Map,但是它是根据行key和列key的坐标来索引value的。
* 5.ImmutableMultimap:
* 6.ImmutableSetMultimap:
* 7.LinkedHashMultimap:
* 8.LinkedListMultimap:
* 9.TreeMultimap:
*/
public class Collections {
/**
* 1 listMultimap
*/
public static void listMultimap() {
ListMultimap<String, String> multimap = ArrayListMultimap.create();
multimap.put("1", "v1");
multimap.put("2", "v2");
multimap.put("3", "v3");
Set<String> sets = multimap.keySet();
System.out.println(multimap.containsKey("1"));
for (String temp : sets) {
System.out.println(multimap.get(temp));
}
}
/**
* 2 hashMultimap
*/
public static void hashMultimap() {
HashMultimap<Integer, Integer> map = HashMultimap.create();
map.put(2, 4);
map.put(1, 2);
map.put(1, 3);
map.put(1, 4);
map.put(2, 6);
map.put(2, 4);
Iterator<Entry<Integer, Integer>> iter = map.entries().iterator();
while (iter.hasNext()) {
Map.Entry<Integer, Integer> entry = (Map.Entry<Integer, Integer>) iter
.next();
System.out.println(String.format("%d:%d", entry.getKey(),
entry.getValue()));
}
Set<Integer> keys = map.keySet();
for (int key : keys) {
String result = String.format("%d:", key);
Set<Integer> values = map.get(key);
for (int value : values) {
result = result + " " + value + ",";
}
System.out.println("----" + result);
}
}
/**
* 3. immutable
*/
public static void immutable() {
// 常量列表
ImmutableList<String> imlist = ImmutableList.of("a", "b", "c");
// imlist.add("d"); //注意,编译会报异常
for (String s : imlist) {
System.out.println(s);
}
ImmutableMap<String, String> immap = new ImmutableMap.Builder<String, String>()
.put("a", "1").put("b", "2").put("c", "3").build();
for (Entry<String, String> e : immap.entrySet()) {
System.out.println(e.getKey() + "=" + e.getValue());
}
//常量Set
ImmutableSet<String> imset=ImmutableSet.of("a","b","c");
for(String s:imset){
System.out.println(s);
}
}