java集合中元素两两互相比较


             //1.运用算法比较集合中元素(两两元素互相比较)
            //2.如果有相同人员处于不同员工等级,则按照优先级,该部分人员取优先级大的等级
            if (levelNames.size() > 1) {
                for (int i = 0; i < levelNames.size(); i++) {
                    for (int j = levelNames.size() - 1; j > i; j--) {
                        List<Long> o1 = new ArrayList<>();
                        List<Long> o2 = new ArrayList<>();

                         o1.addAll((List<Long>) resultMap.get(levelNames.get(i)));
                         o2.addAll ((List<Long>) resultMap.get(levelNames.get(j)));

                            String s1 = levelNames.get(i);
                            String s2 = levelNames.get(j);
                            Integer priority1 = 0;
                            Integer priority2 = 0;
                            for (UserLevelRuleVo levelRuleVo : levelRuleVos) {
                                if (s1.equals(levelRuleVo.getLevelName())) {
                                    priority1 = levelRuleVo.getPriority();
                                }
                                if (s2.equals(levelRuleVo.getLevelName())) {
                                    priority2 = levelRuleVo.getPriority();

                                }
                            }
                        //移除两个集合中相同元素
                            if (priority1 < priority2) {
                                o2.removeAll(o1);
                                resultMap.put(s1, o1);
                                resultMap.put(s2, o2);
                            } else {
                                o1.removeAll(o2);
                                resultMap.put(s1, o1);
                                resultMap.put(s2, o2);
                            }

                    }
                }
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值