Raf*_*ter 25

该接口不属于"Java",这意味着该接口不是核心库的一部分.它是javax.ws.rs层次结构的一部分,是JAX-RS规范的一部分.它由实现规范的框架使用,例如Jersey.只要地图不仅要引用单个值而且引用任意数量的值,都会使用它.使用的一个示例是例如存储请求标头,您可能希望为每个密钥添加多个值.或者甚至在某些情况下没有键,与null值相比,它更容易处理空列表.

以此HTTP标头为例:

Accept-Encoding:compress; q = 0.5,gzip; q = 1.0

你会模仿这个

MultivaluedMap<String, String> map = ...
map.add("Accept-Encoding", "compress;q=0.5");
map.add("Accept-Encoding", "gzip;q=1.0");
Run Code Online (Sandbox Code Playgroud)

在泽西岛内部.这种类型的多值存储是Java中的常见问题,其由诸如Guava的地图的其他实现者解决.

这基本上就是javadoc所说的:

键值对的映射.每个键可以具有零个或多个值.