java set子集_Java 求集合的所有子集
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 求集合的所有子集相关推荐
- Java实现构建函数依赖与函数依赖集的类、求函数依赖集的闭包、属性集闭包、判断属性集是否为候选码/超码、求集合的全部子集
求函数依赖集闭包 本文讲解具体代码实现,相关概念可查阅资料(其实我只是想把代码保存到博客上嘿嘿 这算是我第一次能够用构建一个个类来解决一个较大的问题(不再是像考试一样在一个类里写n个函数了ORZ),在 ...
- 求集合A的子集(图+案例)
求集合A的子集 1.什么是子集 2.求解子集的步骤(以123为例) 2.1代码 1.什么是子集 子集是一个数学概念:如果集合A的任意一个元素都是集合B的元素,那么集合A称为集合B的子集. 符号语言:若 ...
- 求集合的所有子集的算法
转自:http://plutoblog.iteye.com/blog/976218 求集合的所有子集的算法 对于任意集合A,元素个数为n(空集n=0),其所有子集的个数为2^n个 如集合A={a,b, ...
- 傻瓜方法求集合的全部子集问题(java版)
给定随意长度的一个集合.用一个数组表示,如{"a", "b","c"},求它的全部子集.结果是{ {a}, {b}, {c}, {a,b}, ...
- java list 子集_Java——List方法,获取子集
Java--List方法,获取子集 发布时间:2019-01-08 20:58, 浏览次数:921 , 标签: Java List package day04; import java.util.Ar ...
- java 判断 子集_java – 获取集合子集的策略
我有一个场景,我的应用程序可以访问有限时间窗口的会话,在此期间它必须从数据库中获取数据到内存中,然后只使用内存中的数据来处理请求. 数据模型是一个简单的一对多关联,例如: 现在假设汽车和卡车计数数据存 ...
- java 自定义运算符_Java中集合的自定义运算符
java 自定义运算符 总览 操作员重载有多种语言可用. Java对String类型的+运算符的支持对运算符的重载非常有限. 我们可以利用其他语言支持运算符的不同方式,但是我们可以在Java中实现一个 ...
- java 有序容器_Java 容器集合框架概览
Java Collections Framework 集合的概念 集合collection,有时叫做容器container,把多个元素组成一个单元. 早期的Java (pre-1.2) 中包含了Vec ...
- 求集合的所有子集问题
给你一个整数数组 nums ,数组中的元素 互不相同 .返回该数组所有可能的子集(幂集). 示例: 输入:nums = [1,2,3] 输出:[[],[1],[2],[1,2],[3],[1,3],[ ...
最新文章
- usaco Money system
- 如何给mysql用户分配权限
- Debian普通用户添加sudo权限
- 【Paper】2012_Design of high performance multimedia control system for UAV/UGV based on SoC/FPGA Core
- Go sync.WaitGroup的用法
- JavaFX教程–基础
- Android----获取activity上所有的控件
- [转]如何设置win7一直以管理员身份运行
- 前端基础-html-标题标签
- 英国-新加坡联合博士奖学金(人工智能、数字医疗方向)
- 【5G4G】10件5G能实现但4G不能做的事情
- node服务器给客户端发消息,上的node.js发送消息客户端 - 服务器 - 客户端上socket.io(Sen...
- 华为堡垒机_案例:任正非曾为小灵通痛苦8到10年,促进了华为终端公司诞生
- 阿里云视频直播PHP-SDK接入教程
- 51/52单片机 TCON控制字及TMOD寄存器
- Android ViewPager实现3D画廊效果
- 运放的相位补偿 ?
- 微型计算机的 CPU主要由两部分构成,微机是由哪两部分组成
- 2014春节抢票经验记录
- 干货,QQ音乐歌手列表解密方法!
热门文章
- 题目 1071: 二级C语言-阶乘公式求值
- 《程序开发心理学》笔记
- bundle java_Java 中 Bundle 的使用
- html5手机浏览器后退刷新页面,浏览器收到什么样的response就会刷新页面?
- 这里有超多超实用的破解软件,盘它!就对了!
- 邮件服务器实例(debian+posfix+cyrus+squirrelmail)
- 嵌入物理(PINN)还是基于物理(AD)?
- java8新特性之Lambda流常用表达式的方法合集
- 纯CSS实现按钮开关滑动特效
- 篇对xici.net 西祠胡同自动发帖的总结