电子书与java中的hashmap实现

时间:2016-06-13 16:47:07

标签: java hashmap

我必须使用哈希映射创建一个可以在java中模拟电话簿的应用程序。我想实现2种搜索方法(输入名称来获取数字并输入数字来获取名称)。

有没有办法让两个方法只使用1个哈希映射来定义,如HashMap<Person, Number> pb = new HashMap<>();(其中Person和Number是类)?

2 个答案:

答案 0 :(得分:2)

在这种情况下,MapsMap<Person, Number>不需要2 Map<Number, Person>如果您希望只使用一个地图快速访问您的数据,则需要迭代这些值当然要慢得多。

您还可以使用Google番石榴的BiMap同时使用一张地图

  

bimap(或“双向地图”)是保留地图的地图   其价值的独特性以及其价值的独特性。这个约束   使bimaps支持“逆视图”,这是另一个bimap   包含与此bimap相同的条目,但使用反向键和   值

答案 1 :(得分:0)

这可以通过apache commons集合提供的BidiMap(双向映射)来完成。有关详细信息,请参阅https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/BidiMap.html。但是,在这种情况下,名称和数字必须是唯一的。如果不可能,那么您将需要维护两个地图或使用一个地图并迭代这些值。