packagech01;importjava.util.HashSet;importjava.util.Iterator;importjava.util.LinkedList;importjava.util.List;importjava.util.Set;public classQuerySubSet {

// 递归调用, 求出 Set的子集, 返回List列表public static List> Query(Settarget)

{

// 如果 target为空, 则停止递归,并且 返回的list中 包含一个空集if(target.size() == 0)

{

List> list= new LinkedList>();

list.add(target);returnlist;

}

// 如果 target 中有一个元素, 那么改target的子集体包括 空集 和 自身else if(target.size() == 1)

{

List> list= new LinkedList>();

list.add(target);

Set nullset=new HashSet();

list.add(nullset);returnlist;

}

// 如果 target中的元素大于 1 个,则将target分成两个新的集合,并求出两个新集合的所有子集,再将两个List子集进行合并,即可以得到target的所有子集。else{

Iterator iter=target.iterator();

Object elem=iter.next();

target.remove(elem);

Set newSet=new HashSet();

newSet.add(elem);

List> list1=Query(newSet); // 递归调用

List> list2=Query(target); // 递归调用returnmerge(list1, list2); // 合并两个 list

}

}

// 合并两个list, 两次for循环遍历两个list列表。public static List> merge(List> list1, List>list2)

{

List> mlist=new LinkedList>();for(Setset1: list1 )for(Setset2: list2)

{

Set newSet=newHashSet();

newSet.addAll(set1);

newSet.addAll(set2);

mlist.add(newSet);

}returnmlist;

}/***@paramargs*/

public static voidmain(String[] args) {//TODO Auto-generated method stub

Set targ=new HashSet();for(int i=0; i<10; i++)

{

targ.add(Integer.toString(i));

}

List> allsubset=QuerySubSet.Query(targ);boolean f1=true;for(Setset1: allsubset)

{if(!f1)

System.out.print(",");

f1=false;

System.out.print("{");boolean f2=true;for(Object obj: set1)

{if(!f2)

System.out.print(",");

f2=false;

System.out.print(obj.toString());

}

System.out.println("}");

}

}

}

java set子集_Java 求集合的所有子集相关推荐

  1. Java实现构建函数依赖与函数依赖集的类、求函数依赖集的闭包、属性集闭包、判断属性集是否为候选码/超码、求集合的全部子集

    求函数依赖集闭包 本文讲解具体代码实现,相关概念可查阅资料(其实我只是想把代码保存到博客上嘿嘿 这算是我第一次能够用构建一个个类来解决一个较大的问题(不再是像考试一样在一个类里写n个函数了ORZ),在 ...

  2. 求集合A的子集(图+案例)

    求集合A的子集 1.什么是子集 2.求解子集的步骤(以123为例) 2.1代码 1.什么是子集 子集是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集. 符号语言:若 ...

  3. 求集合的所有子集的算法

    转自:http://plutoblog.iteye.com/blog/976218 求集合的所有子集的算法 对于任意集合A,元素个数为n(空集n=0),其所有子集的个数为2^n个 如集合A={a,b, ...

  4. 傻瓜方法求集合的全部子集问题(java版)

    给定随意长度的一个集合.用一个数组表示,如{"a", "b","c"},求它的全部子集.结果是{ {a}, {b}, {c}, {a,b}, ...

  5. java list 子集_Java——List方法,获取子集

    Java--List方法,获取子集 发布时间:2019-01-08 20:58, 浏览次数:921 , 标签: Java List package day04; import java.util.Ar ...

  6. java 判断 子集_java – 获取集合子集的策略

    我有一个场景,我的应用程序可以访问有限时间窗口的会话,在此期间它必须从数据库中获取数据到内存中,然后只使用内存中的数据来处理请求. 数据模型是一个简单的一对多关联,例如: 现在假设汽车和卡车计数数据存 ...

  7. java 自定义运算符_Java中集合的自定义运算符

    java 自定义运算符 总览 操作员重载有多种语言可用. Java对String类型的+运算符的支持对运算符的重载非常有限. 我们可以利用其他语言支持运算符的不同方式,但是我们可以在Java中实现一个 ...

  8. java 有序容器_Java 容器集合框架概览

    Java Collections Framework 集合的概念 集合collection,有时叫做容器container,把多个元素组成一个单元. 早期的Java (pre-1.2) 中包含了Vec ...

  9. 求集合的所有子集问题

    给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集). 示例: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[ ...

最新文章

  1. usaco Money system
  2. 如何给mysql用户分配权限
  3. Debian普通用户添加sudo权限
  4. 【Paper】2012_Design of high performance multimedia control system for UAV/UGV based on SoC/FPGA Core
  5. Go sync.WaitGroup的用法
  6. JavaFX教程–基础
  7. Android----获取activity上所有的控件
  8. [转]如何设置win7一直以管理员身份运行
  9. 前端基础-html-标题标签
  10. 英国-新加坡联合博士奖学金(人工智能、数字医疗方向)
  11. 【5G4G】10件5G能实现但4G不能做的事情
  12. node服务器给客户端发消息,上的node.js发送消息客户端 - 服务器 - 客户端上socket.io(Sen...
  13. 华为堡垒机_案例:任正非曾为小灵通痛苦8到10年,促进了华为终端公司诞生
  14. 阿里云视频直播PHP-SDK接入教程
  15. 51/52单片机 TCON控制字及TMOD寄存器
  16. Android ViewPager实现3D画廊效果
  17. 运放的相位补偿 ?
  18. 微型计算机的 CPU主要由两部分构成,微机是由哪两部分组成
  19. 2014春节抢票经验记录
  20. 干货,QQ音乐歌手列表解密方法!

热门文章

  1. 题目 1071: 二级C语言-阶乘公式求值
  2. 《程序开发心理学》笔记
  3. bundle java_Java 中 Bundle 的使用
  4. html5手机浏览器后退刷新页面,浏览器收到什么样的response就会刷新页面?
  5. 这里有超多超实用的破解软件,盘它!就对了!
  6. 邮件服务器实例(debian+posfix+cyrus+squirrelmail)
  7. 嵌入物理(PINN)还是基于物理(AD)?
  8. java8新特性之Lambda流常用表达式的方法合集
  9. 纯CSS实现按钮开关滑动特效
  10. 篇对xici.net 西祠胡同自动发帖的总结