递归方法
/**
* 递归计算
* @param rs 最后结果
* @param temprs 当前排列数据内容 上下文
* @param data 待排列数据
* @param all 一共几组 从0计
* @param index 第几组数 从0计
*/
public void cal(List<Object> rs, Map<String, Integer> temprs,List<int[]> data,int all,int index){
int[] temp = data.get(index);//取出该组数据
for(Integer val :temp){
//放到当前排列内容中,map重复key数据覆盖,必要
temprs.put("index"+index, val);
if(index == all){
/*
* 最后一组数据取完,已经每组数据取到一个数据,有一个排列结果
* 产生,放到最后结果中,else继续递归下一组数据取值
*/
rs.add(temprs.values());
System.out.println(temprs.values());
}else{
cal(rs,temprs,data,all,index+1);
}
}
}
测试调用:
int[] a = new int[]{2,4,8};
int[] b = new int[]{3,5,9};
List<int[]> data = new ArrayList<int[]>();
data.add(a);
data.add(b);
List<Object> rs = new ArrayList<Object>();
Map<String, Integer> temprs = new HashMap<String, Integer>();
cal(rs, temprs, data, 1, 0);
System.out.println("排列数:"+rs.size());
输出排列内容:
[3, 2]
[5, 2]
[9, 2]
[3, 4]
[5, 4]
[9, 4]
[3, 8]
[5, 8]
[9, 8]
分享到:
相关推荐
用JAVA来计算并按条件来排列时间 现在把符合奇偶数排列的时间排列出来
该资源提供了Java中排列组合的全面指南。文档讲解了排列组合的基本概念,包括如何计算阶乘、如何生成排列和组合,以及如何将这些概念应用于解决实际问题。 此外,文档还提供了各种排列组合算法的详细代码示例和实现...
从n个数组中取出所有排列组合(Java实现)
内容索引:JAVA源码,游戏娱乐,JAVA游戏源码 JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 ...
主要为大家详细介绍了JAVA实现abc字符串的排列组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
内容索引:JAVA源码,游戏娱乐,JAVA游戏源码 JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java...
主要为大家详细介绍了Java实现多个数组间的排列组合,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
内容索引:JAVA源码,游戏娱乐,JAVA游戏源码 JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 ...
内容索引:JAVA源码,游戏娱乐,JAVA游戏源码 JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java...
内容索引:JAVA源码,游戏娱乐,JAVA游戏源码 JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 Java...
内容索引:JAVA源码,游戏娱乐,JAVA游戏源码 JAVA编写的吃豆子游戏,类似疯狂坦克一样,至少界面有点像。大家可以看截图。 Java从网络取得文件 1个目标文件 简单 Java从压缩包中提取文件 1个目标文件 简单 ...
使用Frame类创建一个窗体,在窗体中添加组件,使用GirdBagLayout布局管理器,排列组件,在容器中添加“1,2,3,4,5,6,7,8,9,0,+,—,*,/”按钮,并分别创建其事件的监听器。用鼠标按下对应按钮,对应其“按下”,...
因为Java 使用2的补码来存储负数,并且因为Java 中的所有整数都是有符号的,这样应用位运算符可以容易地达到意想不到的结果。例如,不管你如何打算,Java 用高位来代表负数。为避免这个讨厌的意外,请记住不管高位的...
Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...
本题对于给定的 n 以及 n 个元素 {1, 2, ..., n } 的一个排列, 计算这个排列的字典序值, 以及按字典序排列的下一个排列. Input 有多个测试用例. 每个测试用例由两行组成, 第一行是一个自然数 n(n ≤ 20), 第二行...
实现 公交的换成并在地图上绘制路线图 采用的技术 ssh三大框架
对于一个m位整数,我们可以把0到n之间的n+1个整数从小到大这样来排列: 000......0 ............. 199......9 200......0 299......9 ......... 这样一直排到自然数n。对于从0到199......9这个区间来说,抛去最高位...
注意,计算出的结果,如果第100位为0也需要保留。 2)已知一个数列: 5,2,4,3,7,6 那么,在这个数列中存在这样一些“连续数”,例如:5,2,4,3这个子数列排序后是连续的。同样2,4,3也是连续的,为了方便表示 我们...
Java进制转换 正整数的十进制转换二进制 将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取除得的余数,即换算为二进制数的结果。只需记住要点:除二取余,倒序排列。 由于计算机...