java - 如何使用java流创建集合的自联接笛卡尔积
问题描述
我有一组字符串,例如:
Set<String> set = new HashSet<>(Arrays.asList("A", "B", "C"));
我需要如果一个新的集合本身有笛卡尔
IE["AA", "AB", "AC","BA", "BB", "BC","CA", "CB", "CC"]
如何使用 Java 流 API 做到这一点?
解决方案
执行以下代码:
Set<String> set = new HashSet<>(Arrays.asList("A", "B", "C"));
Set<String> cartesianSet = set
.stream()
.map(x-> set
.stream()
.map(y-> x+y)
.collect(Collectors.toSet()))
.flatMap(Collection::stream)
.collect(Collectors.toSet());
System.out.println(cartesianSet);//[AA, BB, CC, AB, BC, AC, CA, BA, CB]
推荐阅读
- ssl - 在 HTTPS 中解密数据时
- jquery - 在 ASP.NET MVC 中创建可从客户端(jquery)和服务器访问的全局变量的最佳方法
- google-cloud-firestore - 在 Firestore 安全规则中映射字段
- c++ - Unicode 和 SetWindowsHookEx
- javascript - 如何在上传 AWS Lambda 层时更改对它的引用?
- python - ValueError:拆分线时没有足够的值来解包(预期为 2,得到 1)
- html - HTML表格行内的Angular ng-container
- javascript - JavaScript 中的闪烁元素
- python - matplotlib 3.2.1:对于某些字体大小,stix mathfont 与 Times New Roman 正常字体的大小不一致
- spring - 从 MongoDB 中的手动参考中查找所有嵌入文档