@ lucasvw ускользнул от основной проблемы - вам нужно как-то различать исходные значения и добавленные вами значения, иначе l oop будет работать бесконечно (или, по крайней мере, до тех пор, пока значения не будут достаточно переполнены) поэтому они начинают повторяться).
Лучший способ сделать это - действительно иметь вспомогательный набор для хранения всех значений, которые вы хотите добавить:
Set<Integer> aux = original.stream().map(i -> i + 7).collect(Collectors.toSet());
original.addAll(aux);