Java 可整除的和对

Java 可整除的和对,java,Java,给定输入数组ar=[1,2,3,4,5],k=5,找到可除和对,这样输入数组中的元素在相加时得到结果k 样本输出-在这种情况下,满足标准的三对为[1,4]、[2,3]和[4,6] 这是我的密码- public class DivisibleSumPairs { public static void main(String[] args) { int[] inputArr = new int[] {1,2,3,4,5,6}; List<Integer&

给定输入数组ar=[1,2,3,4,5],k=5,找到可除和对,这样输入数组中的元素在相加时得到结果k

样本输出-在这种情况下,满足标准的三对为[1,4]、[2,3]和[4,6]

这是我的密码-

public class DivisibleSumPairs {
    public static void main(String[] args) {
        int[] inputArr = new int[] {1,2,3,4,5,6};
        List<Integer> output = divisibleSumPairs(inputArr, 5);
        System.out.println(Arrays.toString(output.toArray()));
    }

    public static List<Integer> divisibleSumPairs(int[] inputArr, int input) {
        List<Integer> output = null;
        List<Integer> outputLst = new ArrayList<Integer>();
        for (int i = 0; i < inputArr.length; i++) {
            for (int j = 1; j < inputArr.length; j++) {
                if ((inputArr[i] + inputArr[j]) % input == 0) {
                    output = new ArrayList<Integer>(2);
                    output.add(inputArr[i]);
                    output.add(inputArr[j]);
                    outputLst.addAll(output);
                }
            }
        }
        return outputLst;
    }

}

我的代码的输出结果是-[1,4,2,3,3,2,4,6,5,5,6,4],而我想将其分组为具有两个元素的子数组-[1,4]、[2,3]和[4,6]。关于如何实现这一点的任何提示。

要实现您想要的输出,您需要列表而不是列表。因此,应替换以下行:

List<Integer> outputLst = new ArrayList<Integer>();
与:

我刚刚意识到,由于逻辑错误,您还需要更新嵌套for循环。发件人:

for (int j = 1; j < inputArr.length; j++)
致:

您可以看到工作代码。

您希望outputLst.addAlloutput;怎么办?
outputLst.addAll(output);
outputLst.add(output);
for (int j = 1; j < inputArr.length; j++)
for (int j = i+1; j < inputArr.length; j++)