Since it hasn't been mentioned so far, as of Java 10 you can use the new copyOf
factory method:
List.copyOf(set);
From the Javadoc:
Returns an unmodifiable List containing the elements of the given Collection, in its iteration order.
Note that this creates a new list (ImmutableCollections$ListN
to be precise) under the hood by
Collection#toArray()
on the given set and then