文档章节

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

帅的不像男的
 帅的不像男的
发布于 2016/03/31 11:20
字数 293
阅读 50
收藏 4
点赞 1
评论 0

(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
博文 84
码字总数 46416
作品 0
深圳
程序员
关系数据库

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

mehome ⋅ 2017/04/17 ⋅ 0

笛卡尔积问题,求两数组有序对个数.

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

famince ⋅ 2014/08/22 ⋅ 3

MySQL的JOIN(一):用法

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

法斗斗 ⋅ 01/30 ⋅ 0

PaddlePaddle | 深度学习 101- 个性化推荐

本人仅以 PaddlePaddle 深度学习 101 官网教程为指导,添加个人理解和笔记,仅作为学习练习使用,若有错误,还望批评指教。–ZJ 原文地址: PaddlePaddle 官网| PaddlePaddle 深度学习 101 ...

junjun_zhao ⋅ 04/19 ⋅ 0

一例 Hive join 优化实战

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

xrzs ⋅ 2014/08/29 ⋅ 2

关系的连接

连接分类 关系间的连接分为内连接(inner join)和外连接(outer join)。 外连接又可分为:left outer join,right outer join和full outer join。 内连接计算方法: 如果不加条件将会产生笛卡尔...

长平狐 ⋅ 2012/08/28 ⋅ 0

​《数据库系统概念》3-主键、关系运算

一、关系数据库相关 a)在将数据呈现给用户时,主要需解决两个关键问题:如何检索、更新数据以及对数据的保护。 而用户对字段的使用决定了其是否原子性,比如phone,即使保存单个电话号码,如果...

zhixin9001 ⋅ 2017/11/10 ⋅ 0

Hybris电商平台搜索服务实践

电商平台搜索服务特点 随着电商平台的快速发展和所销售商品的数量大规模增长,从大量的商品数据中快速获取用户关注的商品,变得越来越有挑战性。优秀电商平台能够吸引客户的因素之一,就是拥...

dev_csdn ⋅ 05/02 ⋅ 0

Oracle关系代数

关系代数是关系数据库系统查询语言的理论基础 一、关系代数的9种操作: 关系代数中包括了:并、交、差、乘、选择、投影、联接、除、自然联接等操作。 五个基本操作: 并(∪)、差(-)、笛卡尔积...

小衰哥有点帅 ⋅ 01/13 ⋅ 0

国美深度学习初体验,开启社交电商的智能时代!

本周五(2017 年 7 月 21 日),由 51CTO 主办的 WOTI2017 全球创新技术峰会将于北京富力万丽酒店举行,此次峰会设有全天的巅峰论坛,及深度学习、人机交互和智+应用等分论坛。 国美大数据中心...

雪夜凋零 ⋅ 2017/07/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql5.7系列修改root默认密码

操作系统为centos7 64 1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2、重启 mysqld 服务:systemctl restart mysql...

sskill ⋅ 昨天 ⋅ 0

Intellij IDEA神器常用技巧六-Debug详解

在调试代码的时候,你的项目得debug模式启动,也就是点那个绿色的甲虫启动服务器,然后,就可以在代码里面断点调试啦。下面不要在意,这个快捷键具体是啥,因为,这个keymap是可以自己配置的...

Mkeeper ⋅ 昨天 ⋅ 0

zip压缩工具、tar打包、打包并压缩

zip 支持压缩目录 1.在/tmp/目录下创建目录(study_zip)及文件 root@yolks1 study_zip]# !treetree 11└── 2 └── 3 └── test_zip.txt2 directories, 1 file 2.yum...

蛋黄Yolks ⋅ 昨天 ⋅ 0

聊聊HystrixThreadPool

序 本文主要研究一下HystrixThreadPool HystrixThreadPool hystrix-core-1.5.12-sources.jar!/com/netflix/hystrix/HystrixThreadPool.java /** * ThreadPool used to executed {@link Hys......

go4it ⋅ 昨天 ⋅ 0

容器之上传镜像到Docker hub

Docker hub在国内可以访问,首先要创建一个账号,这个后面会用到,我是用126邮箱注册的。 1. docker login List-1 Username不能使用你注册的邮箱,要用使用注册时用的username;要输入密码 ...

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

SpringBoot简单使用ehcache

1,SpringBoot版本 2.0.3.RELEASE ①,pom.xml <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELE......

暗中观察 ⋅ 昨天 ⋅ 0

监控各项服务

比如有三个服务, 为了减少故障时间,增加监控任务,使用linux的 crontab 实现. 步骤: 1,每个服务写一个ping接口 监控如下内容: 1,HouseServer 是否正常运行,所以需要增加一个ping的接口 ; http...

黄威 ⋅ 昨天 ⋅ 0

Spring源码解析(八)——实例创建(下)

前言 来到实例创建的最后一节,前面已经将一个实例通过不同方式(工厂方法、构造器注入、默认构造器)给创建出来了,下面我们要对创建出来的实例进行一些“加工”处理。 源码解读 回顾下之前...

MarvelCode ⋅ 昨天 ⋅ 0

nodejs __proto__跟prototype

前言 nodejs中完全没有class的这个概念,这点跟PHP,JAVA等面向对象的语言很不一样,没有class跟object的区分,那么nodejs是怎么样实现继承的呢? 对象 对象是由属性跟方法组成的一个东西,就...

Ai5tbb ⋅ 昨天 ⋅ 0

Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库

Q: Ubuntu16.04 PHP7.0 不能用MYSQLi方式连接MySQL5.7数据库 A: 执行以下2条命令解决: apt-get install php-mysql service apache2 restart php -m 执行后会多以下4个模块: mysqli mysqlnd...

SamXIAO ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部