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;
}
}
还没有评论,来说两句吧...