Java 我能做一下if';它短吗?
是否可以缩短if语句?例如:Java 我能做一下if';它短吗?,java,if-statement,Java,If Statement,是否可以缩短if语句?例如: if (intno == 0 || intno == 4 || intno == 7) 可能是这样的: if (intno == 0 || 4 || 7) 这会带来一个错误,但是有类似的错误吗?您可以根据需要生成真值映射 Set<Integer> set = new HashSet<Integer>(); map.add(0); map.add(4); map.add(7); 您可以根据需要生成真值映射 Set<Integer&g
if (intno == 0 || intno == 4 || intno == 7)
可能是这样的:
if (intno == 0 || 4 || 7)
这会带来一个错误,但是有类似的错误吗?您可以根据需要生成真值映射
Set<Integer> set = new HashSet<Integer>();
map.add(0);
map.add(4);
map.add(7);
您可以根据需要生成真值映射
Set<Integer> set = new HashSet<Integer>();
map.add(0);
map.add(4);
map.add(7);
对于整数类型和枚举,可以改用switch语句:
switch(intno) {
case 0:
case 4:
case 7:
//code here
break;
}
这也适用于Java 7+中的字符串。对于整数类型和枚举,可以使用switch语句:
switch(intno) {
case 0:
case 4:
case 7:
//code here
break;
}
这也适用于Java 7+中的字符串。注释中已经建议了以下内容:
Arrays.asList(0, 4, 7).contains(intno)
它是正确的和较短的,但速度较慢
请注意,此代码在幕后执行许多操作:
- 将
、0
和4
7
s转换为int
s整数
- 创建包含这些对象的数组
- 创建一个包含该数组的
列表
- 将
转换为intno
Integer
- 在列表上执行线性搜索,对每个对象调用
equals
private static final List<Integer> VALID_NUMBERS = Arrays.asList(0, 4, 7);
// ...
if (VALID_NUMBERS.contains(intno)) {
// Code here
}
private static final List VALID_NUMBERS=Arrays.asList(0,4,7);
// ...
if(有效的_编号包含(intno)){
//代码在这里
}
它更短,也更清晰。它比较慢,所以要小心这些构造,不要每次都使用它。评论中已经提出了以下建议:
Arrays.asList(0, 4, 7).contains(intno)
它是正确的和较短的,但速度较慢
请注意,此代码在幕后执行许多操作:
- 将
、0
和4
7
s转换为int
s整数
- 创建包含这些对象的数组
- 创建一个包含该数组的
列表
- 将
转换为intno
Integer
- 在列表上执行线性搜索,对每个对象调用
equals
private static final List<Integer> VALID_NUMBERS = Arrays.asList(0, 4, 7);
// ...
if (VALID_NUMBERS.contains(intno)) {
// Code here
}
private static final List VALID_NUMBERS=Arrays.asList(0,4,7);
// ...
if(有效的_编号包含(intno)){
//代码在这里
}
它更短,也更清晰。它比较慢,所以要小心这些构造,不要每次都使用它。不。我很确定以前有人问过这个问题……这应该很明显。。。。。。但无论如何,
Int=0
就是它的意思你应该知道int
是一个关键字。试着写int int=0
你肯定会得到一个编译错误。数组。asList(0,4,7).contains(intno)
可能是一个替代方法。否。我很确定以前有人问过这个问题……这应该很明显。。。。。。但无论如何,Int=0你应该知道int
是一个关键字。试着写int int=0
你肯定会得到一个编译错误。array.asList(0,4,7).contains(intno)
可能是一个替代方法。真的吗?我甚至不想买一套,而是一张完整的地图?然后,您的映射不包含其他整数的值,并且将返回null
,而不是true或false。我将在这里使用集。但是它也比原来的if
慢得多。5行比1行短多少?我没有包括它,但在if语句中,我将intno
更改为另一个数字,我如何使用map来实现这一点?if上缺少一个括号,map没有contains
方法。真的吗?我甚至不想买一套,而是一张完整的地图?然后,您的映射不包含其他整数的值,并且将返回null
,而不是true或false。我将在这里使用集。但是它也比原来的if
慢得多。5行比1行短多少?我没有包括它,但在if语句中,我将intno
更改为另一个数字,我如何使用maps执行此操作?if上缺少一个括号,map没有contains
方法。