Find all triplets in array that add up to a given sum
Arrays.asList(other.x, other.y, other.z) already returns a new list. There is no need to add the result to a new ArrayList you could just use

numbers.containsAll(Arrays.asList(other.x, other.y, other.z));


You creating some unnecessary objects that still need to be cleaned up by the garbage collector. e.g.: this could save you some memory. Instead of:

numbers.addAll(new ArrayList&lt;&gt;(Arrays.asList(x, y, z)));


use

numbers.add(x);
numbers.add(y);
numbers.add(z);


Here you can save one lookup in the HashMap. Instead of:

if (lookup.containsKey(complement)) {
    int indexes[] = lookup.get(complement);
    ...


you can write:

int indexes[] = lookup.get(complement);
if (indexes != null) {
    ...