有个小地方探讨一下哈
来源: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
可以的,写代码就是要多尝试,很好。但是对于这种枚举比较明确的,就那么几个值,建议直接写出来会更清晰112024-03-05
相似问题