利用java怎么对集合的子集进行求解

  介绍

利用java怎么对集合的子集进行求解?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>,java求解集合的子集的实例

方式1:我们知道子集个数2的n次方

比如a, b, c的子集

,,,,* 000,0,{}
,,,,* 001,1,,一个
,,,,* 010,2,,b
,,,,* 011,3,,a、b (b, a)
,,,,* 100,4,,c
,,,,* 101,5,,a、c (c)
,,,,* 110,6,,b, c (c, b)
,,,,* 111,7,,a, b, c

利用二进制的对应关系

@Test   公共空间test1()抛出异常{      Set比;子集=getSubsets (arrays . aslist (1、2、6));   Set比;subsets2=getSubsets (arrays . aslist (“a",“b",“c"));   Set比;subsets3=getSubsets (arrays . aslist (& # 39; b # 39; & # 39; c # 39;, & # 39; d # 39;));   System.out.println(子集);   System.out.println (subsets2);   System.out.println (subsets3);   }//集合接受各种类型数据   公共& lt; T>Set比;getSubsets (List分表){//考虑去重   Set比;,allsubsets=new LinkedHashSet<的在();   int max=1 & lt; & lt;subList.size ();   for (int循环=0;循环& lt;马克思;循环+ +){   int指数=0;   int temp=循环;   ArrayList & lt; T>currentCharList=new ArrayList ();//控制索引   而(临时比;0){   如果(temp,1)比;0){   currentCharList.add (subList.get(指数));   }   临时的在祝辞=1;   指数+ +;   }   allsubsets.add (currentCharList);   }   返回allsubsets;   }   

方式2:归纳法

 @Test
  公共空间testName()抛出异常{
  Set比;subsets2=getSubsets2 (arrays . aslist (1, 2, 3));
  System.out.println (subsets2);
  }//方式2归纳法//从{}和最后一个元素开始,每次迭代加一个元素组成一个新的集合
  公共Set比;getSubsets2 (List列表){
  如果(list.isEmpty ()) {
  Set比;,ans=new LinkedHashSet<的在();
  ans.add (Collections.emptyList ());
  返回答;
  }
  
  整数第一=list.get (0);
  List休息=列表。子列表(1,list.size ());
  Set比;list1=getSubsets2(休息);
  Set比;用于=insertAll(首先,list1);//System.out.println (list1);
  System.out.println(用于);
  System.out.println (“================?;
  返回concat (list1,用于);
  }
  
  
  公共Set比;首先insertAll(整数,Set比;列表){//Set比;,结果=new LinkedHashSet<的在();
  (List列表:列出){
  List,复制=new ArrayList<的在();
  copy.add(第一);
  copy.addAll(列表);
  result.add(副本);
  }
  返回结果;
  }//这样写可以不影响lists1, lists2的值
  私人Set比;concat (Set比;lists1 Set比;temp=new LinkedHashSet<祝辞(lists1);
  temp.addAll (lists2);
  返回临时;
  }
  
  
  
  

关于利用java怎么对集合的子集进行求解问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

利用java怎么对集合的子集进行求解