2012-01-28 72 views
0

我有一个整数(例如0,2,4,7)的数组。我想将数组中的每个值与数组中的另一个值结合起来,以便应该有每个组合可能(例如[0,2],[0,4],[0,7],但也可以是[2,0 ],[4,0]和[7,0],其他值相同)。什么是最好和最资源(处理)有效的方式来实现呢?想要将数组的值相互组合并显示它们

谢谢

回答

2

迭代ji+1

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

示例: enter image description here

1
int[] arr = [...]; 

for(int i : arr){ 
    for(int j : arr){ 
    // Do something with both "i and j". 
    } 
} 

在加工点(即“做什么”的评论),你可以做的打印结果,或添加组合结果到一个新的数组或集合一样简单。 (后来的将是性能方面的原因不太理想的,因为这需要所有可能的组合将被存储在内存中的一次 - 而不是处理结果为你生成)

相关问题