How to find array triplets with sum of two elements equals other element in the same array using stream

This is the third solution to find array triplets, with sum of any two numbers equals with any other element in the same array. This approach uses IntStream, flatMap, filter, mapToObj of Stream.

import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

public class SumEqualsMatching {
	public static void main(String[] args) {

		int[] numArr = { 50, 108, 47, 61, 34, 184, 97, 71, 87 };

		int arrLen = numArr.length;
		System.out.println("The given array of numbers are");
		System.out.print("[");
		for (int i = 0; i < arrLen; i++)
			System.out.print(numArr[i] + " ");
		System.out.println("]");
		System.out.println("Triplets -> Sum of any two numbers must be available in the array itself");
		System.out.println("[FirstNum  SecondNum   SumNum]");

		/*
		 * Use flatMap, filter and anyMatch to find whether the sum of two numbers is
		 * available in the given array itself
		 */
		System.out.println(IntStream.range(0, numArr.length).boxed()
				.flatMap(i -> IntStream.range(i + 1, numArr.length)
						.filter(j -> Arrays.stream(numArr).anyMatch(x -> x == numArr[i] + numArr[j]))
						.mapToObj(j -> Arrays.asList(numArr[i], numArr[j], numArr[i] + numArr[j])))
				.collect(Collectors.toList()));
	}
}
OUTPUT:
The given array of numbers are
[50 108 47 61 34 184 97 71 87 ]
Triplets -> Sum of any two numbers must be available in the array itself
[FirstNum  SecondNum   SumNum]
[[50, 47, 97], [47, 61, 108], [97, 87, 184]]