根据条件输入的数量,您可以HashMap通过将所有输入或什至是一些相对简单的复杂条件编码为一个值来使用查找表,甚至使用:
int key = 0;key |= a?(1):0;key |= b?(1<<1):0;key |= (c.size() > 1)?(1<<2):0;...String result = table[key]; // Or result = map.get(key);
这种范例还具有恒定时间(O(1))复杂性的优点,这在某些情况下可能很重要。根据条件的复杂性,与全面的if-then-else意大利面条式代码相反,您甚至可能平均在代码路径中拥有更少的分支,这可能会导致性能提高。
如果您在问题中添加了更多内容,我们可能会为您提供更多帮助。条件输入来自哪里?他们像什么?



