根据实体类的某些List属性求交集 越多相似越靠前

根据实体类的某些List属性求交集 越多相似越靠前,第1张

根据实体类的某些List属性交集 越多相似越靠前
public void sameSort(TreeMap sms, List trades, String str, String keyType) {
    if (StrUtil.isEmpty(str)) return;
    Map srcs = convertListToMap(trades, keyType);

    Set sets = Sets.newHashSet(str.split(","));
    for (Long key : srcs.keySet()) {
        Set sets2 = new HashSet<>();
        if ("functionId".equals(keyType)) {
            sets2 = Sets.newHashSet(srcs.get(key).getFunctionIds().split(","));
        } else if ("consumerBenefit".equals(keyType)) {
            sets2 = Sets.newHashSet(srcs.get(key).getConsumerBenefitIds().split(","));
        } else if ("incis".equals(keyType)) {
            sets2 = Sets.newHashSet(srcs.get(key).getInciIds().split(","));
        }
        Sets.SetView intersection = Sets.intersection(sets, sets2);
        int n = intersection.size();
        if (n > 0) {
            List allList;
            if (sms.get(n) == null) {
                allList = new ArrayList<>();
                sms.put(n, allList);
            } else {
                allList = sms.get(n);
            }
            allList.add(srcs.get(key));
        }
    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5693534.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存