new HashSet<>( Collections.singleton(unitDistrictTable.getUnitId()));

来源:8-11 全量索引加载的实现(2)

bgkp

2019-06-20

比如说在做level4的地域限制: public static void handleLevel4(AdUnitDistrictTable unitDistrictTable,OpType type)
Set value = new HashSet<>( Collections.singleton(unitDistrictTable.getUnitId()));
这个set集合不是始终就一个元素吗? 那为什么还要设计成set集合.
地域限制和unit是多对多, 在数据文件的每一行就是一个unitDistrictTable对象.
上面value 是不是应该合并起来呢. key: 省-市到 unit it 的集合 的映射.
但是如题这样写 结果会是 一个key对应多个set集合吗? 这多个set集合不应该合并吗?
我有点迷惑, 谢谢老师解惑

写回答

1回答

张勤一

2019-06-20

同学你好:

    这里之所以使用 Set 有两个原因:

    1. 保持代码的统一性,所有的属性都是用 Set;

    2. 扩展性,万一以后会有多个 UnitId 呢?

    这里在设计的时候,最好是将地域与 UnitId 区分开,它们是 “独立” 的东西;地域可以有一份地域表,UnitId 与实际的地域相关联就可以。


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

1
2
张勤一
回复
bgkp
也可以这样做,具体怎么实现的话,方式有很多种。可以根据个人习惯或者实现的成本去考虑。
2019-06-21
共2条回复

Spring Cloud微服务架构 设计实现广告系统

广告营销系统,未来大中型企业的标配

2136 学习 · 927 问题

查看课程