现在有如下代码。大致逻辑,从商品列表里面去找出规格id是否在一个指定的规格集合里面。找到存在的规格的id,然后放到新的集合里面
List<Long> skuIdList = new ArrayList<>();
List<Long> removeSkuIdList= new ArrayList<>();
for (GoodsItemB0 goodsItem80 : goodsItemBolist) {
if (Collutil.isNotEmpty(skuIdList) && skuIdList.contains(goodsItemB0.getskuId())){
removeSkuIdList.add(goodsItemB0.getskuId());
}
}
以上代码,看着感觉好像没什么问题,但是写代码的时候可以思考一下,此代码时候还可以继续优化。
优化思路:
- 使用集合List去判断元素是否包含另外一个元素。 有没有更好的方案去做,比如用Set集合去做,涉及到一个集合的基础知识点,Set 的查询效率要高于 List。因为 Set 是基于哈希表实现的,可以通过哈希算法直接定位到元素的存储位置
因此,如果涉及数据量很大的情况,在碰到集合查找的情况,可以改用Set去做。当追加到一个新的集合时,我们也可以考虑初始化新集合的大小。