请高手帮忙,java求子集,差集 java中求一个集合的子集,差集有什么简单的方法吗?如求集合{“1”,“2”,“5”}的非空子集,和{“1”}的差集{“2”,“5”} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 List<String> list1 = new ArrayList(); list1.add("1"); list1.add("2"); list1.add("5"); List<String> list2 = new ArrayList(); list2.add("1"); List resultList = new ArrayList(); for(String s:list1){ boolean isExists = list2.contains(s); if(!isExists){ resultList.add(s); } } System.out.println(resultList);不知道这样是否能满足lz的要求? public static void aaaa(){ String[] b={"1","2","3","4"}; String[] a={"1","3"}; //将a,b转换成Set型 LinkedHashSet aSet = new LinkedHashSet(); LinkedHashSet bSet = new LinkedHashSet(); for (int i = 0; i < a.length; i++) { aSet.add(a[i]); } for (int i = 0; i < b.length; i++) { bSet.add(b[i]); } //求差集 bSet.removeAll(aSet); Iterator iterator = bSet.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next().toString()); } //求子集 bSet.removeAll(aSet); } 共同学习下这个是我写的,楼主可以参考下: public static void main(String[] args) { List<String> parant = new ArrayList<String>(Arrays.asList(new String[] { "1", "2", "5","10" })); List<String> remove = new ArrayList<String>(Arrays .asList(new String[] { "1","2" })); String temp = null; List<String> result = null; int length=1; for(String item:parant){ length*=2; } System.out.println("处理非空子集>>>>>>>>>>>>"); for (int i = 1; i < length; i++) { result=new ArrayList<String>(); temp = formatString(Integer.toBinaryString(i),parant.size()); for (int j = temp.length() - 1; j >= 0; j--) { if('1'==temp.charAt(j)){ result.add(parant.get(j)); } } System.out.println(result); } System.out.println("处理交集>>>>>>>>>>>>"); parant.removeAll(remove); System.out.println(parant); } public static String formatString(String content,int length){ StringBuffer sbBuffer=new StringBuffer(); for (int i=0; i < length-content.length(); i++) { sbBuffer.append(0); } sbBuffer.append(content); return sbBuffer.toString(); } 想知道这个方法的用法 为什么把关闭资源放finally中, 放在try-catch之后不可以么? 编码转换 急急急,求解答!绝对有用 谁有swing 做的类似开心农场的项目 请问:table里怎样添加空行??? 救命,一个关于Echopoint的问题 JTable高手:为什么我实现了getColumnClass()后就不能增加一行了呢? 请问如何在appliction中显示数据库中的图片--〉〉〉〉〉〉〉〉急急急急急急急急 求教: 初学者,按教程写的代码运行时出错,不知道怎么改? java编写的多个applet怎么样整合在一起 关于解析XML的问题,急!!!
List<String> list1 = new ArrayList();
list1.add("1");
list1.add("2");
list1.add("5");
List<String> list2 = new ArrayList();
list2.add("1");
List resultList = new ArrayList();
for(String s:list1){
boolean isExists = list2.contains(s);
if(!isExists){
resultList.add(s);
}
}
System.out.println(resultList);不知道这样是否能满足lz的要求?
String[] b={"1","2","3","4"};
String[] a={"1","3"};
//将a,b转换成Set型
LinkedHashSet aSet = new LinkedHashSet();
LinkedHashSet bSet = new LinkedHashSet();
for (int i = 0; i < a.length; i++)
{
aSet.add(a[i]);
}
for (int i = 0; i < b.length; i++)
{
bSet.add(b[i]);
} //求差集
bSet.removeAll(aSet);
Iterator iterator = bSet.iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next().toString());
}
//求子集
bSet.removeAll(aSet); }
public static void main(String[] args) {
List<String> parant = new ArrayList<String>(Arrays.asList(new String[] {
"1", "2", "5","10" }));
List<String> remove = new ArrayList<String>(Arrays
.asList(new String[] { "1","2" }));
String temp = null;
List<String> result = null;
int length=1;
for(String item:parant){
length*=2;
}
System.out.println("处理非空子集>>>>>>>>>>>>");
for (int i = 1; i < length; i++) {
result=new ArrayList<String>();
temp = formatString(Integer.toBinaryString(i),parant.size());
for (int j = temp.length() - 1; j >= 0; j--) {
if('1'==temp.charAt(j)){
result.add(parant.get(j));
}
}
System.out.println(result);
}
System.out.println("处理交集>>>>>>>>>>>>");
parant.removeAll(remove);
System.out.println(parant);
}
public static String formatString(String content,int length){
StringBuffer sbBuffer=new StringBuffer();
for (int i=0; i < length-content.length(); i++) {
sbBuffer.append(0);
}
sbBuffer.append(content);
return sbBuffer.toString();
}