博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Guava来计算笛卡尔积
阅读量:6551 次
发布时间:2019-06-24

本文共 921 字,大约阅读时间需要 3 分钟。

以前做项目的时候计算笛卡尔积的时候,总是使用各种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]

 

==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/3628362.html,如需转载请自行联系原作者
你可能感兴趣的文章
gtest的Linux使用(Google test)
查看>>
在linux下安装jdk环境
查看>>
1047 Student List for Course
查看>>
使用DCloud+Framework7制作移动APP应用
查看>>
定制Flex菜单图标
查看>>
RHEL6.5安装 Oracle 11g + udev + ASM安装部署详解(续二)
查看>>
阿里云虚拟主机+Hexo 零基础搭建个人博客--简单易学
查看>>
linux 服务器安全狗2.3版发布
查看>>
设置 PullToRefreshListview的 上拉下拉文字
查看>>
iOS闪退bug修复
查看>>
关于解决hibernate.event.def.DefaultLoadEventListener -
查看>>
1.1mysql的安装
查看>>
今天写的一个.net生成Html分页的代码
查看>>
c & fn 标签一些用法
查看>>
在MAC上查找和设置$JAVA_HOME
查看>>
使用tomcat 7的 maven插件启动项目
查看>>
vue2.0中$index $key变更
查看>>
CSS,JavaScript实现手风琴导航菜单
查看>>
maven 相关学习
查看>>
redis主从复制和集群实现原理
查看>>