gpt4 book ai didi

java - 遍历所有唯一的双元素组合

转载 作者:行者123 更新时间:2023-11-30 06:19:09 30 4
gpt4 key购买 nike

我需要遍历两个元素的所有组合:在集合 [1,2,3,4] 中我想遍历 [(1,2),(1,3),(1,4), (2,3),(2,4),(3,4)]。是否有现成的工具可以这样做?

// Not what I need, works wrong!
for (Object o1 : set) {
for (Object o2 : set) {
if (o1 == o2) continue;
...
}
}

此代码将执行比需要多两倍的操作,因为每个对象都将在两个循环中访问。

为此编写我自己的方法是微不足道的,我只是不想发明轮子。我希望在 Guava 或 Collections API 中找到它,但没有找到这样的功能。

最佳答案

https://code.google.com/p/combinatoricslib/简单组合部分说明了此实用程序的用法。与 2 个元素的组合将产生您想要的结果。

    // Create the initial vector
ICombinatoricsVector<String> initialVector = Factory.createVector(
new String[] { "red", "black", "white", "green", "blue" } );

// Create a simple combination generator to generate 3-combinations of the initial vector
Generator<String> gen = Factory.createSimpleCombinationGenerator(initialVector, 3);

// Print all possible combinations
for (ICombinatoricsVector<String> combination : gen) {
System.out.println(combination);
}

关于java - 遍历所有唯一的双元素组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23562297/

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