有个小地方探讨一下哈

来源:4-16 【模型构建】应用规则充血模型编写,将数据库实体转变成数据模型(三)

慕盖茨0002275

2024-03-03

老师,PeriodEnum里面的nextPeriod的这个,感觉可以用循环遍历简单改造一下,发您看看哈

思路比较简单,用循环的方式查找数组,返回下一个,如果最后一个,那么就返回第一个

   PeriodEnum[] values = PeriodEnum.values();
        for (int i = 0; i < values.length; i++) {
            if (Objects.equals(this, values[i])) {
                if (i == values.length - 1) {
                    return values[0];
                } else {
                    return values[i + 1];
                }
            }
        }
        return null;

后面想到您说的循环可能会有性能问题,毕竟有O(n)的复杂度
后面看到type的这个应该可以用一下,type的值默认对应的索引就是i+1

      PeriodEnum[] values = PeriodEnum.values();

      return this.type == values.length ? values[0] : values[this.type];

全部用例测试过OK,这样也是O(1)的性能了,刚好想到,也发您看看哈,谢谢

写回答

1回答

Tim老师

2024-03-03

可以的,写代码就是要多尝试,很好。但是对于这种枚举比较明确的,就那么几个值,建议直接写出来会更清晰
1
1
慕盖茨0002275
好的,了解,谢谢老师
2024-03-05
共1条回复

SpringBoot3.0 + RocketMq 构建企业级数据中台

SpringBoot3.0 + RocketMq 构建企业级数据中台

203 学习 · 63 问题

查看课程