如何只循环一次组合?

Qas*_*sim 1 java arrays loops for-loop

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

{1,2,3,4}
Run Code Online (Sandbox Code Playgroud)

我遇到了这个问题:在开始的时候,我将得到1和4的组合,但是在中间的时候,我将得到4和1的组合。我怎样才能做到这一点,因此只能接受唯一的关系?不能像{1,4}和{4,1}这样。

我正在使用Java,对此有一些答案,但是它们使用的语言仅在其他语言中可用。

不幸的是,我无法解决这个问题。

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

{1, 2}
{1, 3}
{1, 4}
{2, 3}
{2, 4}
{3, 4}
Run Code Online (Sandbox Code Playgroud)

但是,这是遍历数组时实际发生的事情:

{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}
Run Code Online (Sandbox Code Playgroud)

因此,这两个要求是该对必须是唯一的关系(不能有1,2和2,1),并且它们也不能相同。比较两个数字并查看它们是否相等,可以很容易地做到不一样,但是我对第一个要求有麻烦。

Psh*_*emo 5

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

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]+"}");
Run Code Online (Sandbox Code Playgroud)

输出:

{1,2}
{1,3}
{1,4}
{2,3}
{2,4}
{3,4}
Run Code Online (Sandbox Code Playgroud)