gpt4 book ai didi

java - 创建所有可能的元素组合

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:42:09 25 4
gpt4 key购买 nike

我需要创建某种 Key 的所有可能组合,它由 X(在我的例子中为 8)组成,同样重要的元素。所以我想出了这样的代码:

final LinkedList<Key> keys = new LinkedList();

firstElementCreator.getApplicableElements() // All creators return a Set of elements
.forEach( first -> secondElementCreator.getApplicableElements()
.forEach( second -> thirdElementCreator.getApplicableElements()
// ... more creators
.forEach( X -> keys.add( new Key( first, second, third, ..., X ) ) ) ) ) ) ) ) );

return keys;

它正在工作,但是有 X 嵌套 forEach,我觉得我错过了一个更简单/更好/更优雅的解决方案。有什么建议么?提前致谢!

最佳答案

它是笛卡尔积吗?许多库提供 API,例如:SetsLists在 Guava 中:

List<ApplicableElements> elementsList = Lists.newArrayList(firstElementCreator, secondElementCreator...).stream()
.map(c -> c.getApplicableElements()).collect(toList());

List<Key> keys = Lists.cartesianProduct(elementsList).stream()
.map(l -> new Key(l.get(0), l.get(1), l.get(2), l.get(3), l.get(4), l.get(5), l.get(6), l.get(7))).collect(toList());

关于java - 创建所有可能的元素组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46472212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com