set交集差集处理

分手后的思念是犯贱 2022-05-10 09:42 289阅读 0赞
  1. package utils.bianliangtestutils;
  2. import com.alibaba.fastjson.JSONObject;
  3. import pojo.RiskParamPOJO;
  4. import java.sql.SQLException;
  5. import java.util.*;
  6. /**
  7. * by zfy
  8. * 2018/9/22
  9. */
  10. public class SetUtil<T> {
  11. /**
  12. * 判断A是否被B完全包含,如果包含则返回true,否则返回false,并且打印没有被包含的变量
  13. * @param A 待验证的变量集 例如京东信用分的变量集
  14. * @param B 所有变量的set, 例如分开节点3150调用策略引擎的参数key集
  15. * @return boolean
  16. */
  17. public boolean BContainsA(HashSet<T> A, HashSet<T> B){
  18. //A 和 B 的交集
  19. HashSet<T> jiaoji = new HashSet<>();
  20. jiaoji.addAll(A);
  21. jiaoji.retainAll(B);
  22. //A B 的交集size 等于 A的size 说明 B完成包含A
  23. boolean result = false;
  24. if (jiaoji.size() == A.size()){
  25. result = true;
  26. }else {
  27. System.out.println("====以下差异结果=====");
  28. System.out.println("第一个Set==" + A.toString());
  29. System.out.println("第二个Set==" + B.toString());
  30. System.out.println("第一个set不在第二个set中的部分:" + chajiSet(A,B));
  31. System.out.println("第二个set不在第一个set中的部分:" + chajiSet((HashSet<T>) B,A));
  32. }
  33. return result;
  34. }
  35. /**
  36. *
  37. * @param A
  38. * @param B
  39. * @return 返回A-B的结果集 即 A不在B中的部分
  40. */
  41. public HashSet<T> chajiSet(HashSet<T> A, HashSet<T> B){
  42. //A与B的差集
  43. HashSet<T> chaji = new HashSet<>();
  44. chaji.addAll(A);
  45. chaji.removeAll(B);
  46. return chaji;
  47. }
  48. /**
  49. *
  50. * @param A
  51. * @param B
  52. * @return 返回A与B的交集集 即 A在B中的部分
  53. */
  54. public HashSet<T> jiaojiSet(HashSet<T> A, HashSet<T> B){
  55. //A与B的差集
  56. HashSet<T> chaji = new HashSet<>();
  57. chaji.addAll(A);
  58. chaji.retainAll(B);
  59. return chaji;
  60. }
  61. public HashSet<String> keyStartWith(HashSet<String> paraSet, String startStr){
  62. HashSet<String> result = new HashSet<>();
  63. Iterator<String> iterator = paraSet.iterator();
  64. while (iterator.hasNext()){
  65. String next = iterator.next();
  66. if (next.startsWith("zr")){
  67. result.add(next);
  68. }
  69. }
  70. return result;
  71. }
  72. }

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读