使用Guava来计算笛卡尔积

简介:

以前做项目的时候计算笛卡尔积的时候,总是使用各种for循环来嵌套,最后往往在Sonar代码检查的时候总是会报警说for循环嵌套过深。

今天才知道Guava原来已经为我们提供了优雅的计算笛卡尔积的方法。

 

比如我们要计算3个List的笛卡尔积,每个list的内容都是['a', 'b', 'c'], 请看下面的代码:

1
2
3
4
5
6
7
8
9
10
public  class  CartesianProductUtil {
 
     public  static  void  main(String[] args) {
         ImmutableSet<Character> charList = ImmutableSet.of( 'a' 'b' 'c' );
         Set<List<Character>> set = Sets.cartesianProduct(charList, charList, charList);
         for  (List<Character> characters : set) {
             System.out.println(characters);
         }
     }
}

  输出为:

[a, a, a]
[a, a, b]
[a, a, c]
[a, b, a]
[a, b, b]
[a, b, c]
[a, c, a]
[a, c, b]
[a, c, c]
[b, a, a]
[b, a, b]
[b, a, c]
[b, b, a]
[b, b, b]
[b, b, c]
[b, c, a]
[b, c, b]
[b, c, c]
[c, a, a]
[c, a, b]
[c, a, c]
[c, b, a]
[c, b, b]
[c, b, c]
[c, c, a]
[c, c, b]
[c, c, c]

 

目录
相关文章
|
6月前
|
数据采集 机器学习/深度学习 人工智能
什么是笛卡尔积
什么是笛卡尔积
|
机器学习/深度学习
集合论—笛卡尔积与二元关系
集合论—笛卡尔积与二元关系
|
4月前
|
数据采集 Java BI
笛卡尔积计算在关系数据库中的高效应用
笛卡尔积计算在关系数据库中的高效应用
|
4月前
|
SQL 搜索推荐 Java
什么是笛卡尔积及其在SQL查询中的应用
什么是笛卡尔积及其在SQL查询中的应用
|
6月前
kettle开发篇-记录关联(笛卡尔积)
kettle开发篇-记录关联(笛卡尔积)
221 0
|
11月前
|
芯片
求集合的笛卡尔乘积
求集合的笛卡尔乘积
80 0
|
机器学习/深度学习
数学问题-标量三重积&向量三重积
数学问题-标量三重积&向量三重积
250 0
7.3 向量的数量积与向量积
7.3 向量的数量积与向量积
52 0
|
SQL 存储 数据库
工作总结之因为笛卡尔积问题写SQL搞了半天[害](附笛卡尔积总结)
在关系数据库中,一个查询往往会涉及多个表,因为很少有数据库只有一个表,而如果大多查询只涉及到一个表的,那么那个表也往往低于第三范式,存在大量冗余和异常。
298 0
工作总结之因为笛卡尔积问题写SQL搞了半天[害](附笛卡尔积总结)