我正在尝试在JAVA中实现一个函数,该函数会给我一个数字对列表。
这对数字加起来为5,所以最终目标是打印此对数字列表
我有这段代码来确定配对,但不确定如何从方法中返回。 请注意:由于我不知道如何从方法中以{{numberA [0],numberB [0]),(numberA [1],numberB [1])的形式返回值,因此我使用了void, ....}?
public void setNumberList(int[] numberList) {
ArrayList<Integer> numberA = new ArrayList<Integer>();
ArrayList<Integer> numberB = new ArrayList<Integer>();
for (int i = 0; i < numberList.length; i++) {
int first = numberList[i];
for (int j = i + 1; j < numberList.length; j++) {
int second = numberList[j];
if ((first + second) == 5) {
numberA.add(first);
numberB.add(second);
}
}
}
}
答案 0 :(得分:0)
您可以将方法的返回类型更改为Set<List<Integer>>
。 Set
将包含数字列表,其中每个列表中的数字将总计为您的目标数字5
。该方法将如下所示:
public static Set<List<Integer>> setNumberList(int[] numberList) {
ArrayList<Integer> numberA = new ArrayList<Integer>();
ArrayList<Integer> numberB = new ArrayList<Integer>();
for (int i = 0; i < numberList.length; i++) {
int first = numberList[i];
for (int j = i + 1; j < numberList.length; j++) {
int second = numberList[j];
if ((first + second) == 5) {
numberA.add(first);
numberB.add(second);
}
}
}
Set<List<Integer>> result = new HashSet<List<Integer>>();
for (int i=0; i<numberA.size(); i++) {
int n1 = numberA.get(i);
int n2 = numberB.get(i);
List<Integer> numbersToAdd = Arrays.asList(n1, n2);
result.add(numbersToAdd);
}
return result;
}