首页 > 解决方案 > 2 HashMaps VS HashMap 包含对

问题描述

在服务开发过程中,遇到一个问题,需要选择两种解决方案中的一种

目前我有 2 个哈希表的选项,但是我经常需要使用相同的键从两个哈希表中获取值。

class C {
Map<String, A> a = new HashMap<>();
Map<String, B> b = new HashMap<>();

A getA(String str){return a(str);}
B getB(String str){return b(str);}
}

我正在考虑将代码更改如下

class C {
Map<String, Pair<A, B>> a_b = new HashMap<>();
Pair<A, B> getAB(String str){return a_b.get(str);}
}

在大型哈希表上会更有效吗?

标签: java

解决方案


我认为这个问题与其说是关于效率或性能,不如说是有意义的。为了回答什么是有意义的,人们必须考虑上下文。如果两个哈希图的值相互依赖并构成一个可以封装到类中的逻辑单元,则使用一个类(如果更有意义,则使用一对)。如果这些值不是直接相关的,并且仅在一个上下文中作为对有意义,而在另一个上下文中作为单独的事物有意义,那么请考虑使用两个映射。


推荐阅读