- 浏览: 91677 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (139)
- oracle基础 (27)
- oracle sql编程及优化 (14)
- ELK (4)
- java (11)
- java设计模式 (0)
- 互联网知识 (6)
- 安装MongoDB (1)
- MongoDB (0)
- spark (1)
- scala (1)
- spring boot (3)
- spring cloud (8)
- redis (6)
- virtualbox (3)
- docker (7)
- rabbitmq (0)
- rocketmq (2)
- k8s (8)
- ubuntu (11)
- centos (3)
- mysql (4)
- nginx (7)
- tomcat (5)
- postman (1)
- other (10)
最新评论
-
lihao312:
insert all功能好强大哦 之前都没有用到过
oracle 多表插入 insert all 用法(即列转行)
import java.util.ArrayList; import java.util.List; /** * 全排列组合算法 * @author mukeliang * 2009.10.21 */ public class TestComposite { public static void main(String[] args) { // List allList = getFirstData(); // List allList = getSecondData(); List allList = getThirdData(); List targetList = combinatePlan(allList); System.out.println(targetList); } /** * 进行组合排列 * @param sourceList * @return List */ private static List combinatePlan(List sourceList) { int[] subSizeArray; int[] subCountArray; int sourceCount = sourceList.size(); // 大list的长度 subSizeArray = new int[sourceCount]; subCountArray = new int[sourceCount];// 子list当前的值 int targetCount = 1; for (int i = 0; i < sourceCount; i++) { List subList = (List) sourceList.get(i); int size = subList.size(); subSizeArray[i] = size; // 存放每个子list的长度 targetCount *= size; // 最终要返回的list长度 subCountArray[i] = 0; // 从0开始 每个都是0 // a.println("subCountArray[i]:"+subCountArray[i]); } List targetList = new ArrayList(targetCount); // targetCount for (int i = 0; i < targetCount; i++) { // 记录每个结果应该包含的元素个数 List targetSub = new ArrayList(sourceCount); for (int k = 0; k < sourceCount; k++) { int subIndex = subCountArray[k]; targetSub.add(((List) sourceList.get(k)).get(subIndex)); } addCount(subSizeArray, subCountArray); targetList.add(targetSub); } return targetList; } /** * 计算List下标: 总是先数最后一位,最后一位数到最大值以后进一位 * @param subSizeArray * @param subCountArray */ private static void addCount(int[] subSizeArray, int[] subCountArray) { // subCountArray数组的每个元素都是0 但是个数来记录循环要取的位置 for (int i = subCountArray.length - 1; i >= 0; i--) { if (subCountArray[i] < subSizeArray[i] - 1) { subCountArray[i]++; return; } else { subCountArray[i] = 0; } } } /** * 组合结果: * list1下标 list2下标 * 0 0 * 0 1 * 0 2 * 1 0 * 1 1 * 1 2 * 2 0 * 2 1 * 2 2 * @return List */ private static List getFirstData(){ List list1 = new ArrayList(); list1.add("王一"); list1.add("王二"); list1.add("王三"); List list2 = new ArrayList(); list2.add("张一"); list2.add("张二"); list2.add("张三"); List allList = new ArrayList(); allList.add(list1); allList.add(list2); return allList; } /** * 组合结果: * list1下标 list2下标 list3下标 * 0 0 0 * 0 0 1 * 0 1 0 * 0 1 1 * 1 0 0 * 1 0 1 * 1 1 0 * 1 1 1 * @return List */ private static List getSecondData(){ List list1 = new ArrayList(); list1.add("王一"); list1.add("王二"); List list2 = new ArrayList(); list2.add("张一"); list2.add("张二"); List list3 = new ArrayList(); list3.add("刘一"); list3.add("刘二"); List allList = new ArrayList(); allList.add(list1); allList.add(list2); allList.add(list3); return allList; } /** * 组合结果: * list1下标 list2下标 * 0 0 * 1 0 * @return List */ private static List getThirdData(){ List list1 = new ArrayList(); list1.add("王一"); list1.add("王二"); List list2 = new ArrayList(); list2.add("张一"); List allList = new ArrayList(); allList.add(list1); allList.add(list2); return allList; } }
发表评论
文章已被作者锁定,不允许评论。
-
Stream List 的排序
2023-04-08 16:52 620https://blog.csdn.net/yiyihua ... -
JDK8 Stream操作 collectingAndThen ------根据对象的属性进行去重操作
2023-04-08 16:29 356https://blog.csdn.net/qq_3563 ... -
执行一个JAR文件
2018-02-09 17:15 261java -cp redis-0.0.1-SNAPSHOT ... -
java 客户端链接不上redis解决方案
2018-02-09 10:44 755出现问题描述: 1.Could not get a res ... -
Java爬虫框架WebMagic的使用总结
2017-12-07 17:05 839最近,项目做一个 ... -
WebMagic写的网络爬虫
2017-12-07 17:02 580一、WebMagic总体架构 五、如何用Wwb ... -
java生成图片验证码
2017-10-11 11:03 603import javax.imageio.ImageIO; ... -
java服务器端解决跨域问题
2017-06-30 16:10 430现在很多开发的API都支持ajax直接请求,这样就会导致跨 ... -
学习sharding-jdbc(一)分库分表扩展框架
2017-06-16 15:23 513前一段时间研究阿里的分库框架cobar-client,co ... -
攻破JAVA NIO技术壁垒
2017-06-29 18:35 377现在使用NIO的场景越来越多,很多网上的技术框架或多或少的 ... -
批量生成带LOGO的二维码图片
2014-10-10 17:56 909import java.io.BufferedReader ... -
多线程
2014-08-13 13:59 0http://lavasoft.blog.51cto.com/ ... -
正则表达式笔记
2014-03-31 10:02 1135import java.util.regex.Matche ... -
java io 分类
2013-11-13 19:05 0io
相关推荐
Java排列组合算法 - 郭睿的专栏 - CSDN博客Java排列组合算法 - 郭睿的专栏 - CSDN博客
本文将深入探讨Java中实现排列组合算法的方法,帮助开发者更好地理解和运用这些概念。 排列是有序的选择,而组合是无序的选择。在Java中,我们可以使用递归、回溯法或者迭代的方式来实现这两种算法。下面我们将详细...
总之,这个资源包提供了一个很好的平台,让你能够深入理解并实践Java中的排列组合算法。通过学习和理解这些代码,你不仅可以增强算法设计能力,还能提高解决实际编程问题的能力。记得动手实践,结合文档和代码,将...
这里的`set`并未直接参与实现,但它的无序性特性可以用于优化组合算法,例如检查重复的组合,避免重复计算。 总的来说,Java中的组合算法可以通过递归和集合类如list和set实现。这种方法易于理解和实现,并且可以...
Java排列组合算法是计算机科学中的一种基本算法,它广泛应用于数据分析、机器学习、人工智能等领域。下面将详细介绍高效的Java版排列组合算法的实现。 一、排列组合算法的概念 排列组合算法是指从n个元素中选择m个...
排列组合算法实现,支持模板类。支持重复数的排列。算法采用递归方法,简单易懂。
6位数,共有几种排列组合的算法,java实现
这个"实现了排列组合算法的类(JAVA).rar"文件提供了一种高效的JAVA实现,可以处理任意类型数组的排列和组合。下面将详细讨论排列组合的基本概念,以及在JAVA中实现这些算法的关键点。 排列是指从n个不同元素中...
此外,文档还提供了各种排列组合算法的详细代码示例和实现细节,包括递归和迭代方法。文档还涵盖了高级主题,如如何计算有重复元素的排列组合数量,以及如何优化这些算法的性能。 无论您是Java编程的初学者还是有...
总结来说,从n个数组中取出所有排列组合的Java实现涉及到递归算法、回溯法以及数据结构的操作。理解这些概念并能够熟练运用是成为一名优秀程序员的关键。通过这个例子,我们可以看到如何利用Java的灵活性和表达力来...
这个项目为开发者提供了一个学习和实践排列组合算法、SpringBoot框架以及H2数据库整合的绝佳案例。它不仅展示了如何在后端实现复杂的算法,还涵盖了数据库管理和API设计等多个核心技能。对于希望提升后端开发能力的...
【排列组合的算法作业 Java】 在编程领域,排列和组合是经典的算法问题,它们属于组合数学的一部分,常常出现在数据结构与算法课程的作业中。排列指的是从给定的元素集合中选择并按特定顺序排列所有可能的组合,而...
总结来说,Java中实现排列组合算法主要有两种策略:二进制状态法和递归。二进制状态法适合小规模数据,但效率较低;递归方法虽然直观,但可能导致性能问题。在实际应用中,应根据数据规模和性能需求选择合适的方法。...
根据给定文件的信息,我们可以总结出以下关于Java中m取n排列组合的实现方式,包括重复与不重复的情况,以及如何使用for循环嵌套和递归来实现这些算法。 ### Java中m取n排列组合实现 #### 一、背景介绍 在计算机...
阶乘与排列组合算法是计算机科学中基础但至关重要的概念,尤其在概率论、统计学、图论和算法设计等领域有着广泛的应用。阶乘(n!)是计算一个正整数n的所有小于等于n的正整数乘积,而排列组合则是解决如何从给定元素...
压缩包中的文件名为“Zuhe”,可能是实现组合排列算法的Java源代码文件。通过查看这个文件,我们可以了解具体的实现细节,包括使用的数据结构、递归或非递归的策略,以及如何处理边界条件等。 总的来说,组合排列是...
在java数组排列组合问题的应用中,我们可以将其应用于面试或笔试中,多次遇到以下四个关于排列组合的手撕算法,可以用统一的模板实现,如下所示: * 无重复元素的数组,求组合 * 有重复元素的数组,求组合 * 无重复...
总的来说,理解和掌握排列组合的算法及其在源代码中的实现是编程能力的重要组成部分。通过递归和分治策略,我们可以有效地解决这些问题,并且在实际项目中应用这些概念,如优化搜索路径、生成所有可能的解决方案等。
在编程领域,组合数学是一种非常重要的理论基础,它在解决许多问题时,如计数、概率计算、算法设计等,都发挥着关键作用。而生成排列是组合数学中一个具体的子话题,它涉及到如何系统地生成一个集合的所有排列。在这...