You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

判断int是否为指定数值:两种写法是否属不良实践?

判断int变量是否属于1-6的写法对比

关于List.contains的写法

这种写法不算不良实践,但有几个细节要注意:

  • 你代码里的List包含了0,但需求是判断1-6,得修正为Arrays.asList(1,2,3,4,5,6)才符合要求
  • 性能上:对于只有6个元素的小集合,contains的线性遍历开销完全可以忽略,不会影响实际运行
  • 可读性与扩展性:后续要增减判断数值时,直接修改List的元素即可,比修改switch语句更便捷
  • 仅在极端高频调用的热点代码中,它的性能才会略逊于switch,但绝大多数场景下差异可以无视

关于switch的写法

switch是Java中处理离散固定数值判断的常规写法:

  • 性能:Java会对switch做优化(比如生成tableswitch指令),对于连续数值范围,效率很高
  • 可读性:每个case对应明确的数值,逻辑清晰,但后续修改数值时需要逐个调整case,灵活性不如List写法
  • 注意:你代码里每个case后都加了break,但因为已经用return跳出方法了,break是冗余的,可以直接删掉简化代码

更简洁的替代写法

因为你要判断的是连续的1-6,其实最简洁高效的写法是直接用范围判断:

if (n >= 1 && n <= 6) {
    return;
}

这种写法比List和switch都更直观,完全没必要用复杂的实现。

总结

  • 若判断的是连续数值范围:优先用范围判断,简洁又高效
  • 若判断的是离散不连续数值:两种写法都可行,追求扩展灵活性选List.contains,追求热点代码极致性能选switch
  • 你提到的List写法绝非不良实践,只需注意集合元素与需求匹配即可

内容的提问来源于stack exchange,提问作者Woody

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 02:10:31