# Java Code Example: find pairs with target sum

In this code example, the `findPairs` method takes an integer array `arr` and an integer `target` as input and returns a list of pairs (`Pair` class) containing the elements that sum up to the target value.

The algorithm uses two nested loops to iterate over all possible pairs of elements. The outer loop selects the first element, and the inner loop iterates over the remaining elements to find a matching pair.

For each pair of elements, the algorithm checks if their sum is equal to the target value. If a pair is found, it is added to the `pairs` list.

In the `main` method, an example input array `arr` and target value `target` are defined. The `findPairs` method is called to find the pairs that sum up to the target value, and the resulting pairs are printed to the console.

``````import java.util.ArrayList;
import java.util.List;

public class PairSumFinder {
public static List<Pair<Integer, Integer>> findPairs(int[] arr, int target) {
List<Pair<Integer, Integer>> pairs = new ArrayList<>();

// Iterate over all possible pairs of elements
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i] + arr[j] == target) {
}
}
}

return pairs;
}

public static void main(String[] args) {
int[] arr = {2, 4, 5, 3, 6, 8};
int target = 9;
List<Pair<Integer, Integer>> result = findPairs(arr, target);

System.out.println("Pairs that sum up to " + target + " are:");
for (Pair<Integer, Integer> pair : result) {
System.out.println("(" + pair.getKey() + ", " + pair.getValue() + ")");
}
}

// Custom Pair class to hold pair of values
static class Pair<K, V> {
private K key;
private V value;

public Pair(K key, V value) {
this.key = key;
this.value = value;
}

public K getKey() {
return key;
}

public V getValue() {
return value;
}
}
}``````