Java if语句中的多个检查

Java if语句中的多个检查,java,if-statement,Java,If Statement,在java中有没有一种更快的方法 if (keyCode != 66 && keyCode != 8 && keyCode != 21 && keyCode != 22) { } 键码是一个整数。更快吗?对你来说太慢了吗?不要玩优化器。编写可读代码并将微优化留给优化器过早优化是万恶之源 在josh的评论后编辑: 如果你真的有很多,把它们放在一个容器中(比如一个集合或一个数组),然后findkeyCode。如果你找到了,那么你的条件是错误的。否则

在java中有没有一种更快的方法

if (keyCode != 66 && keyCode != 8 && keyCode != 21 && keyCode != 22) {

}

键码是一个整数。

更快吗?对你来说太慢了吗?不要玩优化器。编写可读代码并将微优化留给优化器过早优化是万恶之源

在josh的评论后编辑:

如果你真的有很多,把它们放在一个容器中(比如一个集合或一个数组),然后
find
keyCode
。如果你找到了,那么你的条件是错误的。否则这是真的

根据Dave的评论:

if(!MyCodesSet.Contains(keyCode)){
}

是的,
switch
语句将转换为直接跳转。然而,JIT也有可能对您的代码执行此操作,因此如果
开关
实际上更快,您必须尝试使用它。

对于可读代码,他指的是给这些常量值命名,即66、8、21和22有什么那么重要?如果我需要再添加15个呢。我是否可以以某种方式使用阵列?请补充:“我们应该忘记小效率,比如说97%的时间:过早……”)您可以将所有重要值放在一个集合中(使用整数而不是int),并使用if setVariable.contains(keyCode)