文档章节

获取多个集合列表的笛卡尔积

BakerZhu
 BakerZhu
发布于 2018/08/21 20:07
字数 249
阅读 101
收藏 0

获取多个集合笛卡尔积

电商中典型业务场景:商品搜索

  • 单属性属性值之间为并查询
  • 不同属性的属性值之间查询为与查询
import java.util.ArrayList;
import java.util.List;

/**
 * Created with IntelliJ IDEA.
 *
 * @author: bakerZhu
 * @description: 获取集合笛卡尔积
 * @time: 2018年08月20日
 * @modifytime:
 */
public class Descartes {
	public  static void descartes(List<List<Long>> dimvalue, List<List<Long>> result, int layer, List<Long> curList) {
		if (layer < dimvalue.size() - 1) {
			if (dimvalue.get(layer).size() == 0) {
				descartes(dimvalue, result, layer + 1, curList);
			} else {
				for (int i = 0; i < dimvalue.get(layer).size(); i++) {
					List<Long> list = new ArrayList<Long>(curList);
					list.add(dimvalue.get(layer).get(i));
					descartes(dimvalue, result, layer + 1, list);
				}
			}
		} else if (layer == dimvalue.size() - 1) {
			if (dimvalue.get(layer).size() == 0) {
				result.add(curList);
			} else {
				for (int i = 0; i < dimvalue.get(layer).size(); i++) {
					List<Long> list = new ArrayList<Long>(curList);
					list.add(dimvalue.get(layer).get(i));
					result.add(list);
				}
			}
		}
	}
}

© 著作权归作者所有

共有 人打赏支持
BakerZhu
粉丝 100
博文 517
码字总数 422971
作品 0
通州
程序员
私信 提问
【理论】离散数学中的二元关系

这篇文章将了解到以下方面的知识 01 二元关系的定义 02 笛卡尔积定义 03 二元关系的表示方式 0301 二元关系是笛卡尔积的子集 0302 等价关系与集合上的划分一一对应 二元关系定义 由两个元素x...

needrunning
2017/12/14
0
0
T-SQL基础(二)之关联查询

在上篇博文中介绍了T-SQL查询的基础知识,本篇主要介绍稍微复杂的查询形式。 表运算符 表运算符的作用是把为其提供的表作为输入,经过逻辑查询处理,返回一个表结果。SQL Server支持四个表运...

雪飞鸿
2018/11/14
0
0
杂事杂知识,

以前在写博客中,自己感觉函数,SQL查询常用的没必要多看多学习,今天想处理一个简单笛卡尔积问题,炸了!下面聊聊解决和感觉有意义的知识点 说问题拉点知识关于rownum的,这是Oracle系统查询...

长路慢
2018/02/02
0
0
oracle多表查询之经典面试题

一、笛卡尔积 概念 笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员。...

lkee6760
2017/04/26
0
0
关系数据库

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

mehome
2017/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用神器BTrace 追踪线上 Spring Boot应用运行时信息

概述 生产环境中的服务可能会出现各种问题,但总不能让服务下线来专门排查错误,这时候最好有一些手段来获取程序运行时信息,比如 接口方法参数/返回值、外部调用情况 以及 函数执行时间等信...

CodeSheep
52分钟前
4
0
OSChina 周四乱弹 —— 我想过年请假提前回家两天

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享王力宏的单曲《爱错》 《爱错》- 王力宏 手机党少年们想听歌,请使劲儿戳(这里) @Caremorele :这几天起床有点...

小小编辑
今天
169
7
Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
3
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部