import java.util.ArrayList;
import java.util.List;
/**
* Array Utils Functions
*/
/**
* @author luismr
*/
public abstract class ArrayUtils {
/**
* Get Complementary Pairs of an Integer Array for K
* @param k Complementary index
* @param numbers array of integers
* @return bidimensional array containing all pairs
*/
public static int [] [] complementaryPairs(final int k, final int[] numbers) {
if (numbers == null) {
throw new IllegalArgumentException("numbers == null");
}
List<List<Integer>> pairs = new ArrayList<List<Integer>>();
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers.length; j++) {
if (numbers[i] + numbers[j] == k) {
List<Integer> pair = new ArrayList<Integer>();
pair.add(i);
pair.add(j);
pairs.add(pair);
}
}
}
return transformToPairsArray(pairs);
}
/**
* Transform a List for List of Integers in a bidimensional array
* @param pairs List of List of Integers representing pairs
* @return bidimensional primitive int array representing pairs
*/
private static int[][] transformToPairsArray(final List<List<Integer>> pairs) {
int [] [] p = new int[ pairs.size() ] [ 2 ];
int i = 0;
for (List<Integer> pair : pairs) {
for (int j = 0; j < 2; j++) {
p[i][j] = pair.get(j);
}
i++;
}
return p;
}
}