set交集差集处理

package utils.bianliangtestutils;

import com.alibaba.fastjson.JSONObject;
import pojo.RiskParamPOJO;

import java.sql.SQLException;
import java.util.*;

/**
 * by zfy
 * 2018/9/22
 */
public class SetUtil<T> {

    /**
     *  判断A是否被B完全包含,如果包含则返回true,否则返回false,并且打印没有被包含的变量
     * @param A  待验证的变量集  例如京东信用分的变量集
     * @param B  所有变量的set,  例如分开节点3150调用策略引擎的参数key集
     * @return  boolean
     */
    public boolean BContainsA(HashSet<T> A, HashSet<T> B){
        //A 和 B 的交集
        HashSet<T> jiaoji = new HashSet<>();
        jiaoji.addAll(A);
        jiaoji.retainAll(B);
        //A B 的交集size 等于 A的size 说明 B完成包含A
        boolean result = false;

        if (jiaoji.size() == A.size()){
            result = true;
        }else {
            System.out.println("====以下差异结果=====");
            System.out.println("第一个Set==" + A.toString());
            System.out.println("第二个Set==" + B.toString());
            System.out.println("第一个set不在第二个set中的部分:" + chajiSet(A,B));
            System.out.println("第二个set不在第一个set中的部分:" + chajiSet((HashSet<T>) B,A));
        }
        return result;
    }

    /**
     *
     * @param A
     * @param B
     * @return 返回A-B的结果集 即 A不在B中的部分
     */
    public HashSet<T> chajiSet(HashSet<T> A, HashSet<T> B){
        //A与B的差集
        HashSet<T> chaji = new HashSet<>();
        chaji.addAll(A);
        chaji.removeAll(B);
        return chaji;
    }

    /**
     *
     * @param A
     * @param B
     * @return  返回A与B的交集集 即 A在B中的部分
     */
    public HashSet<T> jiaojiSet(HashSet<T> A, HashSet<T> B){
        //A与B的差集
        HashSet<T> chaji = new HashSet<>();
        chaji.addAll(A);
        chaji.retainAll(B);
        return chaji;
    }

    public HashSet<String> keyStartWith(HashSet<String> paraSet, String startStr){
        HashSet<String> result = new HashSet<>();
        Iterator<String> iterator = paraSet.iterator();
        while (iterator.hasNext()){
            String next = iterator.next();
            if (next.startsWith("zr")){
                result.add(next);
            }
        }
        return result;
    }



}

猜你喜欢

转载自blog.csdn.net/zhufengyan521521/article/details/82871418