关于部分代码优化

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

慕盖茨0002275

2024-02-28

老师,简单探讨一下哈,视频中的以下代码是不是可以简单优化一下

Arrays.asList(values()).stream().collect(Collectors.toMap(CollectWayEnum::getSourceValue, v->v));

改成下面的

Arrays.stream(values()).collect(Collectors.toMap(CollectWayEnum::getSourceValue, v->v));

因为Arrays有自带的stream的方法哈;

另外,如果只是要从source value获得对应enum的type是不是可以直接用for循环获取哈?还是说后续map也会开放出来?

    public CollectWayEnum parse(Integer sourceValue) {
        for (CollectWayEnum value : values()) {
            if (sourceValue.equals(value.sourceValue)) {
                return value;
            }
        }
        return null;
    }

这样会不会可能可读性也稍微好一点哈?
本人水平有限哈,仅作探讨哈,谢谢老师~

写回答

1回答

Tim老师

2024-02-28

你说的没错,上面那个api可以用Arrays.stream简化,这个是提倡的。下面那个你确实也可以遍历,但是对于追求极致性能来说,一般都会转成map直接获取,而不是选择遍历。当然就这个例子来说,其实无伤大雅,但是更多的情况下,我们还是会用空间换时间
1
1
慕盖茨0002275
好的,了解,谢谢老师
2024-03-01
共1条回复

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

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

203 学习 · 63 问题

查看课程