笛卡尔积 java_Java中任意集的笛卡尔积
小编典典
编辑:删除了两组的以前的解决方案。有关详细信息,请参见编辑历史记录。
这是一种对任意数量的集合进行递归处理的方法:
public static Set> cartesianProduct(Set>... sets) {
if (sets.length < 2)
throw new IllegalArgumentException(
"Can't have a product of fewer than two sets (got " +
sets.length + ")");
return _cartesianProduct(0, sets);
}
private static Set> _cartesianProduct(int index, Set>... sets) {
Set> ret = new HashSet>();
if (index == sets.length) {
ret.add(new HashSet());
} else {
for (Object obj : sets[index]) {
for (Set set : _cartesianProduct(index+1, sets)) {
set.add(obj);
ret.add(set);
}
}
}
return ret;
}
请注意,不可能将任何通用类型信息与返回的集一起保留。如果你事先知道要使用多少个集合,则可以定义一个通用元组来容纳那么多元素(例如Triple),但是在Java中无法拥有任意数量的通用参数。
2020-03-01
笛卡尔积 java_Java中任意集的笛卡尔积相关推荐
- java求任意个数集合的笛卡尔积,Java中任意集的笛卡尔积
繁华开满天机 删除了两个集合的先前解决方案.有关详细信息,请参阅编辑历史记录.这里有一种方法可以递归地对任意数量的集合执行此操作:public static Set> cartesianProd ...
- Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)
文章目录 一.问题说明 二.解决方法 一.问题说明 问题来源:粉丝的提问 从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合(对比用库和不用库的方法) 二.解决方法 iter ...
- 2022年阿里全球数学竞赛中的集福活动(附代码解答)
预赛中的一道题目:春节期间,牛奶公司推出了新春集福活动:每盒牛奶都附赠一个红包,红包中藏有下列"虎","生","威"中的一款图案,集齐两个& ...
- 《盗墓笔记》使用的这套技术,让美术可以在场景中任意使用灯光
手游中的氛围想要渲染得好,光照是重中之重.游族网络的手游大作<盗墓笔记>,包含大量的地下多光源渲染场景以及地上丰富唯美的光影效果,他们是如何处理好多光源光照渲染,增加打灯数量的同时降低Dr ...
- DistCp迁移Hive数据过程中源集群增加删除文件等场景测试
1 概述 由于在数据迁移过程中,上层任务仍在运行,会出现源集群新增文件及删除文件的情况,因此进行测试 2 需要同步的数据文件说明 源集群:192.168.40.100:8020,目标集群:19 ...
- Tips--利用shell脚本批量提取txt文件中任意字段
利用shell脚本批量提取txt文件中任意字段 前言 0. 一个例子 1. cat命令 2. '|'符号与'>'符号 3. grep命令 4. awk命令 前言 对于测试中出现的log,我们经常 ...
- 第k大的数python代码_Python实现查找数组中任意第k大的数字算法示例
本文实例讲述了Python实现查找数组中任意第k大的数字算法.分享给大家供大家参考,具体如下: 模仿partion方法,当high=low小于k的时候,在后半部分搜索,当high=low大于k的时候, ...
- python替换UTF-8编码文本中任意特殊字符,包括中文符号问题:大量文本,将其中的特殊字符用空
python替换UTF-8编码文本中任意特殊字符,包括中文符号问题:大量文本,将其中的特殊字符用空 python替换UTF-8编码文本中任意特殊字符,包括中文符号 问题: 大量文本,将其中的特殊字符用 ...
- Hadoop架构中各个集群在开发中的作用
学习大数据,如果只是零零散散地学习各个模块,就会深陷其中,很难深入了解hadoop架构中各个集群的作用.那么在实际开发中,究竟是怎样的一个流程呢?先看下面一张流程图: 接下来就用一些大白话,来讲解每个 ...
最新文章
- 算法-电话号码的字母组合
- mysql建表的auto_increment_koa2+koa+mysql快速搭建nodejs服务器
- 万万没想到,枯燥的“机器学习”还可以这样学!
- 当AR落地B端行业应用,它的无限可能在哪?
- Fiddler 学习笔记---命令、断点
- php unset函数_PHP | 使用unset()函数从数组中删除元素
- ElasticSearch快速入门(一)介绍
- Linux Shell编程笔记8 进程
- 关于androidstudio获取shal的总结
- sqlserver如何修改服务器排序规则,修改sqlserver2008数据库的排序规则 (转)
- 关于全球时间的一点理解
- ubuntu微信中输入乱码解决
- Mysql数据库的分离和附加
- 我开发了一个机器人应用,让 HEXA 机器人可以追逐光——HEXA The Light Chaser
- spdif数字传输规范
- 单片机反相器_AVR单片机在工业控制系统中的应用
- 【web前端开发】数据库MySQL在开发环境的操作
- 织梦php实现评论,织梦文章评论功能的使用
- mybatis延迟加载、缓存(一级、二级)
- 免费参加世界杯球迷活动
热门文章
- Python 1.3 输出“人生苦短,我学Python”
- Unity - Optimize Mesh Data 导致的 Mesh 顶点数据(法线、切线、UV2~8,Color0~7,等)丢失
- 7-2 微博昵称的冒泡排序
- 转载:――放心油条自己做
- 【python小课堂专栏】python小课堂15 - 史上最详细的包和模块import讲解篇
- 有容乃大-----C语言
- 通过方法实现学生和专业关联
- 宗次郎 The Great Yellow River II 大黄河2
- linux用户环境变量配置文件问题 profile 和 ~/.bashrc区别
- 透明细胞肾细胞癌的发生及致死性机制(2021)