优化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;
    }

如果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;
   }
}

你的for循环没问题啊

可以放到map里面,id为key,这样就不存在重复数据了。

.......