教程 > guava 教程 > 阅读:26

guava multimap 接口——迹忆客-ag捕鱼王app官网

返回 guava collections 实用程序


multimap 接口扩展了 map,因此它的键可以一次映射到多个值。


接口声明

以下是 com.google.common.collect.multimap 接口的声明

@gwtcompatible
public interface multimap

接口方法

序号 方法 说明
1 map> asmap() 返回此 multimap 的视图作为从每个不同键到该键关联值的非空集合的 map。
2 void clear() 从 multimap 中删除所有键值对,将其留空。
3 boolean containsentry(object key, object value) 如果此 multimap 包含至少一对具有键和值的键值对,则返回 true。
4 boolean containskey(object key) 如果此 multimap 包含至少一个带有键的键值对,则返回 true。
5 boolean containsvalue(object value) 如果此 multimap 包含至少一个具有该值的键值对,则返回 true。
6 collection> entries() 返回此 multimap 中包含的所有键值对的视图集合,作为 map.entry 实例。
7 boolean equals(object obj) 比较指定对象与此 multimap 是否相等。
8 collection get(k key) 返回与此 multimap 中的键关联的值的视图集合(如果有)。
9 int hashcode() 返回此 multimap 的哈希码。
10 boolean isempty() 如果此 multimap 不包含键值对,则返回 true。
11 multiset keys() 返回一个视图集合,其中包含此 multimap 中每个键值对的键,不折叠重复项。
12 set keyset() 返回此 multimap 中包含的所有不同键的视图集合。
13 boolean put(k key, v value) 在此 multimap 中存储一个键值对。
14 boolean putall(k key, iterable values) 在此 multimap 中为每个值存储一个键值对,所有值都使用相同的键 key。
15 boolean putall(multimap multimap) 按照 multimap.entries() 返回的顺序存储此 multimap 中 multimap 的所有键值对。
16 boolean remove(object key, object value) 如果存在,则从该 multimap 中删除具有键和值的单个键值对。
17 collection removeall(object key) 删除与键关联的所有值。
18 collection replacevalues(k key, iterable values) 存储具有相同键的值集合,替换该键的任何现有值。
19 int size() 返回此 multimap 中键值对的数量。
20 collection values() 返回一个视图集合,其中包含此 multimap 中包含的每个键值对的值,不折叠重复项(因此 values().size() == size())。

multimap 的例子

c:/> guava 中使用我们选择的任何编辑器创建以下 java 程序。

guavatester.java

import java.util.collection;
import java.util.list;
import java.util.map;
import java.util.set;
import com.google.common.collect.arraylistmultimap;
import com.google.common.collect.multimap;
public class guavatester {
   public static void main(string args[]) {
   
      guavatester tester = new guavatester();
      multimap multimap = tester.getmultimap();
      list lowerlist = (list)multimap.get("lower");
      system.out.println("initial lower case list");
      system.out.println(lowerlist.tostring());
      lowerlist.add("f");
      system.out.println("modified lower case list");
      system.out.println(lowerlist.tostring());
      list upperlist = (list)multimap.get("upper");
      system.out.println("initial upper case list");
      system.out.println(upperlist.tostring());
      upperlist.remove("d");
      system.out.println("modified upper case list");
      system.out.println(upperlist.tostring());
      map> map = multimap.asmap();
      system.out.println("multimap as a map");
      for (map.entry> entry : map.entryset()) {
         string key = entry.getkey();
         collection value =  multimap.get("lower");
         system.out.println(key   ":"   value);
      }
      system.out.println("keys of multimap");
      set keys =  multimap.keyset();
      for(string key:keys) {
         system.out.println(key);
      }
      system.out.println("values of multimap");
      collection values = multimap.values();
      system.out.println(values);
   }
   private multimap getmultimap() {
      //map>
      // lower -> a, b, c, d, e
      // upper -> a, b, c, d
      multimap multimap = arraylistmultimap.create();
      multimap.put("lower", "a");
      multimap.put("lower", "b");
      multimap.put("lower", "c");
      multimap.put("lower", "d");
      multimap.put("lower", "e");
      multimap.put("upper", "a");
      multimap.put("upper", "b");
      multimap.put("upper", "c");
      multimap.put("upper", "d");        
      return multimap;
   }
}

验证结果

使用 javac 编译器编译类,如下所示

c:\guava>javac guavatester.java

现在运行 guavatester 以查看结果。

c:\guava>java guavatester

结果如下

initial lower case list
[a, b, c, d, e]
modified lower case list
[a, b, c, d, e, f]
initial upper case list
[a, b, c, d]
modified upper case list
[a, b, c]
multimap as a map
upper:[a, b, c, d, e, f]
lower:[a, b, c, d, e, f]
keys of multimap
upper
lower
values of multimap
[a, b, c, d, e, f, a, b, c]

返回 guava collections 实用程序

查看笔记

扫码一下
查看教程更方便
网站地图