code: public static <T> Set<T> joinSets(Set<T> set1, Set<T> set2) {
          return new NonConvertedSetView<>(set1, set2);
      }
docs: Returns an unmodifiable Set View made up of the given Sets. The returned Set View does not copy any of the data from
  any of the given Sets, therefore any changes in the two Sets will be reflected in the View.
  
  NOTE: The iterator of this SetView will not de-duplicate items, so if the two Sets are not disjoint, the same item
  may appear multiple times.
  
  @param set1 The first Set.
  @param set2 The second Set.
  @param <T>  The type of the items in the Sets.
  @return A new Set View made up of the two Sets.