java - 如何只循环一次组合?

标签 java arrays loops for-loop

我试图遍历一个数组,但是我遇到了这个问题。 当我遍历这个数组时:

{1,2,3,4}

我遇到了这个问题:在开始时,我会得到 1 和 4 的组合,但是在接近中间时,我会得到 4 和 1 的组合。我怎样才能让它只接受独特的关系?不能有像 {1,4} 和 {4,1} 这样的东西。

我正在使用 Java,对此有一些答案,但是他们使用的库仅以其他语言提供。

不幸的是,我无法全神贯注地想出一个解决方案。

这是遍历数组后的预期输出:

{1, 2}
{1, 3}
{1, 4}
{2, 3}
{2, 4}
{3, 4}

但这是循环遍历数组时实际发生的情况:

{1, 1}
{1, 2}
{1, 3}
{1, 4}
{2, 1}
{2, 2}
{2, 3}
{2, 4}
{3, 1}
{3, 2}
{3, 3}
{3, 4}
{4, 1}
{4, 2}
{4, 3}
{4, 4}

所以这两个要求是 pair 必须是唯一关系(不能有 1,2 和 2,1)并且它们也不能相同。通过比较两个数字并查看它们是否相等,可以很容易地做到不相同,但我在满足第一个要求时遇到了麻烦。

最佳答案

更新后我假设您正在寻找这样的东西

int[] arr={1,2,3,4};
for (int i=0; i<arr.length; i++)
    for (int j=i+1; j<arr.length; j++)
        System.out.println("{"+arr[i]+","+arr[j]+"}");

输出:

{1,2}
{1,3}
{1,4}
{2,3}
{2,4}
{3,4}

关于java - 如何只循环一次组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11415808/

相关文章:

c - 动态分配的二维数组

python - python 中的字符串格式 - 使用循环填充

java - 将数据集<行>导出为 CSV

java - 如何在 Mongo Async Java Driver 上实现多线程?

java - Jogl-2.0不支持GLAutoDrawable gLDrawable.addKeyListener(this); ?

java - 随机#猜谜游戏无限循环

arrays - 遍历数组 - 只打印一次?

java - 连接 Android 和 Java EE 服务器

C - 使用 strtok 只给我每行的第一个单词?

ruby-on-rails - Rails、二维表、pivot、嵌套散列循环