# 1. Introduction

Finding a pair in an array with a given sum is a recurrent problem in coding interviews. The task is to ascertain if there are two numbers in the array such that their sum equals a provided number. This post delves into the Java solution for this challenge.

# 2. Program Steps

1. Initialize an empty HashSet to track the numbers we’ve come across.

2. Loop through each element in the array.

3. For every element, calculate the value that, when added to the current element, will give the target sum.

4. Check if this calculated value is present in our HashSet.

5. If it is, we’ve found our pair.

6. If it isn’t, add the current element to our HashSet.

7. Continue until we either find a pair or finish checking all elements.

# 3. Code Program

```
import java.util.HashSet;
public class PairSumFinder {
public static void main(String[] args) {
int[] arr = {1, 2, 4, 4};
int sum = 8;
if (hasPairWithSum(arr, sum)) {
System.out.println("Array has a pair with sum " + sum);
} else {
System.out.println("Array doesn't have a pair with sum " + sum);
}
}
public static boolean hasPairWithSum(int[] arr, int sum) {
// Create a set to store numbers we've seen so far.
HashSet<Integer> numbers = new HashSet<>();
for (int num : arr) {
// Calculate the number which, when added to `num`, will give `sum`.
int complement = sum - num;
if (numbers.contains(complement)) {
// If the complement is in the set, we've found a pair.
return true;
}
numbers.add(num);
}
return false;
}
}
```

### Output:

Array has a pair with sum 8

# 4. Step By Step Explanation

1. We begin by setting up a *HashSet* to help us quickly check numbers we've seen so far.

2. As we loop through each number *num* in the array, we calculate its *complement* which is the difference between the *sum* and the *num*.

3. We then check if this *complement* is inside our HashSet.

4. If it is, that means we've seen a number in the array which, when added to *num*, gives us our target sum.

5. If not, we just add the *num* to our set and move on.

6. If we finish looping through the array and haven't found a pair, then no such pair exists.