文档章节

实现电商的分类属性排序,利用笛卡尔积实现

帅的不像男的
 帅的不像男的
发布于 2016/03/31 11:20
字数 293
阅读 56
收藏 4

(1)循环内,每次只有一列向下移一个单元格,就是CounterIndex指向的那列。 

(2)如果该列到尾部了,则这列index重置为0,而CounterIndex则指向前一列,相当于进位,把前列的index加1。 
(3)最后,由生成的行数来控制退出循环。 

   贴代码

public class Test {  
  
    private static String[] aa = { "aa1", "aa2" };  
    private static String[] bb = { "bb1", "bb2", "bb3" };  
    private static String[] cc = { "cc1", "cc2", "cc3", "cc4" };  
    private static String[][] xyz = { aa, bb, cc };  
    private static int counterIndex = xyz.length - 1;  
    private static int[] counter = { 0, 0, 0 };  
  
    public static void main(String[] args) throws Exception {  
  
        for (int i = 0; i < aa.length * bb.length * cc.length; i++) {  
            System.out.print(aa[counter[0]]);  
            System.out.print("\t");  
            System.out.print(bb[counter[1]]);  
            System.out.print("\t");  
            System.out.print(cc[counter[2]]);  
            System.out.println();  
  
            handle();  
        }  
    }  
  
    public static void handle() {  
        counter[counterIndex]++;  
        if (counter[counterIndex] >= xyz[counterIndex].length) {  
            counter[counterIndex] = 0;  
            counterIndex--;  
            if (counterIndex >= 0) {  
                handle();  
            }  
            counterIndex = xyz.length - 1;  
        }  
    }  
  
}

输出共2*3*4=24行: 
aa1 bb1 cc1 
aa1 bb1 cc2 
aa1 bb1 cc3 
aa1 bb1 cc4 
aa1 bb2 cc1 
aa1 bb2 cc2 
aa1 bb2 cc3 
aa1 bb2 cc4 
aa1 bb3 cc1 
aa1 bb3 cc2 
aa1 bb3 cc3 
aa1 bb3 cc4 
aa2 bb1 cc1 
aa2 bb1 cc2 
aa2 bb1 cc3 
aa2 bb1 cc4 
aa2 bb2 cc1 
aa2 bb2 cc2 
aa2 bb2 cc3 
aa2 bb2 cc4 
aa2 bb3 cc1 
aa2 bb3 cc2 
aa2 bb3 cc3 
aa2 bb3 cc4

本文转载自:http://xiemingmei.iteye.com/blog/1484587

共有 人打赏支持
帅的不像男的
粉丝 12
博文 90
码字总数 47450
作品 0
深圳
程序员
私信 提问
关系数据库

关系数据库: 关系模型由:关系数据结构、关系操作集合、关系完整性约束三部分。 关系模型三个方面:完整性约束、关系数据库系统中实现关系操作的一种语言、关系演算。 完整性约束: 关系 域...

mehome
2017/04/17
0
0
笛卡尔积问题,求两数组有序对个数.

某面试的算法题,笛卡尔积问题,求两个int数组组合成有序对(pair)个数有多少,如何最快时间计算出,手写实现CODE。 一开始还在回忆神马事笛卡尔积,不过面试官也稍微解释了下,奈何面试时有点...

famince
2014/08/22
275
3
【Mysql】Mysql的Join完全解读

一、用法 JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。这里描述先甩出一张用烂了的图,然后插入测试数据。 用例表 1、笛卡尔积:C...

慕凌峰
11/14
0
0
MySQL的JOIN(一):用法

MySQL的JOIN(一):用法 JOIN的含义就如英文单词“join”一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。这里描述先甩出一张用烂了的图,然后插入测试数据。 CREATE...

法斗斗
01/30
0
0
一例 Hive join 优化实战

由于 hive 与传统关系型数据库面对的业务场景及底层技术架构都有着很大差异,因此,传统数据库领域的一些技能放到 Hive 中可能已不再适用。关于 hive 的优化与原理、应用的文章,前面也陆陆续...

大数据之路
2014/08/29
0
2

没有更多内容

加载失败,请刷新页面

加载更多

支付宝客户端架构分析:自动化日志收集及分析

摘要: 《支付宝客户端架构解析》系列将从支付宝客户端的架构设计方案入手,带领大家进一步了解支付宝在客户端架构上的迭代与优化历程。 小蚂蚁说: 《支付宝客户端架构解析》系列将从支付宝...

阿里云官方博客
13分钟前
1
0
nginx中部署vue打包后的静态文件

如何在nginx中部署静态资源就不描述了, 请看我的这篇博客 将vue脚手架项目打包后的静态文件放到nginx上, 发现有个问题, 即url上有#, 怎么去掉这个#呢. 1 项目中router的mode 路由的mode要为h...

克虏伯
31分钟前
5
0
JS容易理解错误的地方

在这端代码执行的末尾,你会不会hi变量回事函数中的hi了?你会不会认为这不是按引用传递了? 对值传递和引用传递产生质疑了? 1 var hi = {};2 function sayHello(hi) { ...

器石_
32分钟前
3
0
Java开发学习--MongoDB

之前只学过sql,第一次使用非关系型数据库。以前对于关系型数据库与非关系型数据库的概念很模糊,通过这次的学习对这两者有了一个清晰的概念。 主键 在MongoDB中,主键名叫"_id",如果在生成...

微笑向暖wx
35分钟前
3
0
Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序

今天我们来实战一把, 对Map的Value值排序进行简化. 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群...

编程SHA
38分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部