HashMap是否提供一对一的通信?

时间:2010-03-23 15:04:18

标签: java map hashmap

我发现了以下声明:

  

Map是一个存储的对象   键/音量对。如果有钥匙,你可以   找到它的价值。钥匙必须是唯一的,   但价值观可能会重复。

例如,我只有一个键/值对(3,4)。现在我put一对新的(3,5)。它将删除旧的一对。对?但是如果我put(2,4)而不是(3,4),我将向HashMap添加一对新的键/值。正确?

4 个答案:

答案 0 :(得分:10)

标题中的问题答案是“否”。您邮件中问题的答案是“是”。如果您想要一个双向地图,其中包含标题中提到的唯一键和唯一值(也称为键 - 键地图),请查看Guava BiMap

答案 1 :(得分:7)

是的,括号中的第一个数字是Key,您可以将其视为地址。第二是价值。钥匙是独一无二的,就像你家的地址一样,但价值可以是任何东西。

答案 2 :(得分:2)

你是对的。对于每个键,只有一个值。但是没有什么可以防止多个键具有相同的值。

将HashMap视为一盒抽屉,每个抽屉只能容纳一个物品,每个抽屉都标有钥匙。因此,当你在标有1的抽屉里放一个苹果后,你不能把橙子放在那里,除非你先从那里拿出一个苹果。但是,没有什么可以阻止你把橙子放在抽屉2 3和4中。

答案 3 :(得分:1)

是的,这是正确的。如果您想要一对一的通信,请使用BiMap(或Guava)中Google's Java Collections library之类的内容。