文档章节

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

帅的不像男的
 帅的不像男的
发布于 2016/03/31 11:20
字数 293
阅读 53
收藏 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

共有 人打赏支持
帅的不像男的
粉丝 10
博文 89
码字总数 47422
作品 0
深圳
程序员
关系数据库

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

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

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

famince
2014/08/22
263
3
MySQL的JOIN(一):用法

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

法斗斗
01/30
0
0
卷积神经网络「失陷」,CoordConv来填坑

  选自Uber   作者:Rosanne Liu等   机器之心编译      卷积神经网络拥有权重共享、局部连接和平移等变性等非常优秀的属性,使其在多种视觉任务上取得了极大成功。但在涉及坐标建...

机器之心
07/13
0
0
卷积神经网络「失陷」,CoordConv 来填坑

选自Uber,作者:Rosanne Liu等,机器之心编译。 卷积神经网络拥有权重共享、局部连接和平移等变性等非常优秀的属性,使其在多种视觉任务上取得了极大成功。但在涉及坐标建模的任务上(如目标...

07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

同样是工作3年程序员,为什么别人每月25K你却只有15K?

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月26K你却只有15K? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差)...

Java填坑之路
21分钟前
1
0
跨域问题:解决跨域的三种方案

当前端页面与后台运行在不同的服务器时,就必定会出现跨域这一问题,本篇简单介绍解决跨域的三种方案,部分代码截图如下,仅供参考: 方式一:使用ajax的jsonp 前端代码 服务器代码 使用该方...

rechardchensir
21分钟前
4
0
linux学习-1012

8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 扩展 bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719 简易审计系统: http://www.68idc.cn/help/server/...

wxy丶
22分钟前
1
0
springboot dubbo 在程序初始化完成前 使用回声测试对服务依赖检测

<dubbo:consumer timeout="10000" check="false" /><dubbo:service delay="-1" /> @Component@Order(2)public class PrkServiceInit implements ApplicationListener {private Logge......

林伟琨
24分钟前
3
0
“网红架构师”解决你的Ceph 运维难题

Q1. 环境预准备 绝大多数MON创建的失败都是由于防火墙没有关导致的,亦或是SeLinux没关闭导致的。一定一定一定要关闭每个每个每个节点的防火墙(执行一次就好,没安装报错就忽视): CentOS s...

编程SHA
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部