菜鸟李太白 2022-01-04 15:11 采纳率: 100%
浏览 92
已结题

优化for循环内的if判断

问题遇到的现象和发生背景

代码优化

问题相关代码,请勿粘贴截图

for循环里的id有点重复,改怎么优化,能否只判断一次,就把c和b的值都改了

//所有的A的a 都是一样的 一个是true就其他的就都是true
public void test(List<A> list){
        for (A a : list) {
            if(a.a){
                a.b = 1;
            }else {
                a.b = 2;
            }
               a.c = 1;
        }
    }
    
    class A{
        boolean a = true;
        Integer b = 0;
        Integer c = 0;
    }

  • 写回答

4条回答 默认 最新

  • 猿码叔叔 2022-01-04 16:35
    关注

    如果List中的元素对应的a字段的值具有随机性,你这么写是没问题的,无需优化。但如果不具有随机性,你可以把if判断放在循环体外。

    A a0 = list.get(0);
    if(a0 != null) {
       int tmp = a0.a ? 1 : 2;
       for(A o : list) {
           o.b = tmp;
           o.c = 1;
       }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题