Write a Java program to find all pairs in given array whose sum is equal to given number.

Check below code:

import java.util.Arrays;

public class SumOfPairs
{
    public static void main(String[] args)
    {
        int[] numbers = { 4, 3, 5, 7, 8, 9, 1, 2 }; 
        int[] numbersWithDuplicates = { 1, 2, 4, 3, 5, 6, -2, 4, 7, 8, 9, 1, 2 };
        printPairs(numbers, 8);
        printPairs(numbersWithDuplicates, 8);
    }
    
    public static void printPairs(int[] givenArray, int givenSum) 
    { 
        System.out.println("Given Array: " + Arrays.toString(givenArray)); 
        System.out.println("Given Sum : " + givenSum); 
        System.out.println("Integer numbers, whose sum is equal to : " + givenSum); 

        for (int i = 0; i < givenArray.length; i++) 
        { 
            int first = givenArray[i]; 
            for (int j = i + 1; j < givenArray.length; j++) 
            { 
                int second = givenArray[j]; 
    			
                if ((first + second) == givenSum) 
                { 
                    System.out.printf("(%d, %d) %n", first, second); 
                } 
            }
        }
        System.out.println();
    }
}

Output - 1

Given Array: [4, 3, 5, 7, 8, 9, 1, 2]

Given Sum : 8

Integer numbers, whose sum is equal to : 8

(3, 5) 

(7, 1) 

Output - 2

Given Array: [1, 2, 4, 3, 5, 6, -2, 4, 7, 8, 9, 1, 2]

Given Sum : 8

Integer numbers, whose sum is equal to : 8

(1, 7) 

(2, 6) 

(4, 4) 

(3, 5) 

(6, 2) 

(7, 1)