HashMap与MultivaluedMap

时间:2019-02-06 11:40:11

标签: java rest jersey

我最近进入Java的Rest API并遇到了MultivaluedMap。与HashMap或MultivaluedMapTreeMap之类的其他类相比,我没有发现LinkedHashMap的优势。请解释需要MultivaluedMap的情况。

1 个答案:

答案 0 :(得分:2)

一个MultivaluedMap是:

  

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

一个Map是:

  

一个将键映射到值的对象。映射不能包含重复的键;每个键最多可以映射到一个值

因此,在MultivaluedMap中,您可以插入0、1、2、3或更多与同一键相关的对象。

Map中,您只能插入1个与键相关的对象。

这是区别,如果您需要存储与单个键相关的许多值,则很有用,如果您只有一个相似的值,则很有用。


可能的情况是一个词典,您可以在其中保存所有以字母开头的相关单词。键是A B C ... Z,值是单词。

A -> Acid
     Apple 
     August

B -> Banana
     Boat

C -> Car
     Chain

...

Z -> Zebra

可以用以下代码进行编码:

MultivaluedMap<String, String> multiMap = new MultivaluedHashMap<>();
multiMap.add("A", "Acid");
multiMap.add("A", "Apple");
multiMap.add("A", "August");
multiMap.add("B", "Banana");
multiMap.add("B", "Boat");
multiMap.add("C", "Car");
multiMap.add("C", "Chain");
multiMap.add("Z", "Zebra");

另一种情况是一张地图,其中包含用户购买的所有产品。键是用户标识,值是产品。

USER1 -> Pizza Margherita
         Pizza Pepperoni

USER2 -> Pizza Margherita

USER3 -> Pizza Margherita
         Pizza Pepperoni
         Pizza Four Cheese