一种方法或函数,该函数或函数返回一对数字之和,这些数字对总计为5

时间:2018-11-13 18:24:45

标签: java

我正在尝试在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);
            }
        }
    }
}

1 个答案:

答案 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;
}