我有一个关于 Java 中参数数量可变的方法的性能问题。
假设我有以下两种选择:
public static final boolean isIn(int i, int v1, int v2) {
return (v1 == i) || (v2 == i);
}
public static final boolean isIn(int i, int... values) {
for (int v : values) {
if (i == v) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
现在,当我的第一个方法的参数达到 20、30 甚至 50 个时,主要问题就出现了。现在这样只会伤眼睛。好的,这是遗留代码,我想用唯一的一个变量参数方法替换所有代码。
知道这对性能会有什么影响吗?编译器是否有可能对第二种方法进行一些优化,使其或多或少类似于第一种形式?
编辑:好吧,也许我还不够清楚。对于具有 50 个参数的方法,我没有遇到性能问题。正如 Peter Lawrey 所说,这只是关于可读性。我想知道如果我切换到参数数量可变的新方法,会出现性能问题。
换句话说:如果您关心性能,最好的方法是什么?具有 50 个参数的方法还是唯一一种具有可变参数的方法?