HashMap<Pair<Class<T>,Boolean>,String> abc = new HashMap<Pair<Class<T>,Boolean>,String>();
我这里有两种方法...创建一个 key{class, Boolean} -> {string} 或者我也可以这样做。
{类} -> { boolean 值,字符串}
第一种方法有 1 级间接,而第二种方法有 2 级...这里有什么优点和缺点?第二种方法不好吗?
最佳答案
理想情况下,选择最好由问题/解决方案领域的自然情况驱动。 Key
但是,如果这纯粹是性能决策,那么在所有其他条件相同的情况下(例如,访问模式不偏向于一种方式或另一种方式、良好的哈希函数、稀疏映射等),我会认为 HashMap
由于您有一个 boolean 键,因此还可以考虑使用 2 个 HashMap 表(一张表示 true,一张表示 false)和一些三元运算符 (?:) 魔法:
final Map<Class, String> falseMap = new HashMap<Class, String>();
final Map<Class, String> trueMap = new HashMap<Class, String>();
final String s = ((booleanKey ? trueMap: falseMap).get(classKey));
关于java - 复合键 v/s 2 级间接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967378/