HashMap 与 MultivaluedMap
HashMap vs MultivaluedMap
我最近在 java 进入 Rest API 并遇到了 MultivaluedMap。我没有发现 MultivaluedMap
优于 HashMap 或其他 类 如 TreeMap
或 LinkedHashMap
的优势。请解释需要 MultivaluedMap 时的场景。
一个MultivaluedMap
是:
A map of key-values pairs. Each key can have zero or more values.
一个Map
是:
An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.
因此在 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");
另一种情况是 Map 包含用户购买的所有产品。键是用户 ID,值是产品。
USER1 -> Pizza Margherita
Pizza Pepperoni
USER2 -> Pizza Margherita
USER3 -> Pizza Margherita
Pizza Pepperoni
Pizza Four Cheese
我最近在 java 进入 Rest API 并遇到了 MultivaluedMap。我没有发现 MultivaluedMap
优于 HashMap 或其他 类 如 TreeMap
或 LinkedHashMap
的优势。请解释需要 MultivaluedMap 时的场景。
一个MultivaluedMap
是:
A map of key-values pairs. Each key can have zero or more values.
一个Map
是:
An object that maps keys to values. A map cannot contain duplicate keys; each key can map to at most one value.
因此在 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");
另一种情况是 Map 包含用户购买的所有产品。键是用户 ID,值是产品。
USER1 -> Pizza Margherita
Pizza Pepperoni
USER2 -> Pizza Margherita
USER3 -> Pizza Margherita
Pizza Pepperoni
Pizza Four Cheese