Pair和Hashmap的区别是什么?

13

当HashMap可以完成同样的工作时,为什么需要引入Pair类?

我看到Pair被引入到Java 8版本中。


3
HasMap 是一组 Pairs 的集合。 - Guy
当你只需要一个时,为什么需要一个可变的哈希映射表,它可以容纳多个键值对? - Tom
2
在哪个世界上,PairHashMap是在做同样的事情?一个Pair是用于存储两个值的对象,昵称为keyvalue,但也可以命名为foobar,因为它们对于类来说根本没有任何意义。而HashMap是一种关联数据结构,将唯一的键映射到值。它们没有任何共同点。 - Andreas
3个回答

25
您选择使用哪个类不仅是发给计算机的信息,还是发给未来开发人员的信息——那些将来维护您的代码的人,甚至是几个月后的您自己。通过选择将某个变量声明为 HashMapPair 中的一个,您会告诉这些未来的开发人员一些信息。它可能是以下两种情况之一:

此变量引用某种映射,该映射使用哈希算法进行快速检索。

或者

此变量引用一对值。

这将有助于未来的开发人员理解您的代码在做什么。虽然您可以使用只有一个条目的 HashMap 替代 Pair,但这是非常奇怪的事情,并且会向未来维护人员传递完全错误的信息。

6

一个pair(对)基本上是将一个简单的键与值关联在一起的便捷方式。Map也可以存储键值对,但它是将多个pair集合在一起并作为整体进行操作。

很多时候我们仅需要一个独立的键值对,例如:

  • 需要将键值对作为参数传递给方法
  • 方法需要以pair形式返回两个值

当我们只需要一个单一的键值对时,使用Map会使事情更加复杂。


-1

Pair<K, V> 是 JavaFX 的一部分,而 Hashmap 则在核心 API 中。你很可能可以使用 Pair 来创建一个 hashmap 实现(我没有测试过,但我看不出为什么不行),但是 Pair 不同于 HashMap


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接