interleave method
Combines elements by taking turns. First element in original iterable is the first element of the result.
1, 2, 3.interleave(4, 5, 6) returns 1, 4, 2, 5, 3, 6.
Excess elements are added to the end:
1, 2, 3.interleave(4) returns 1, 4, 2, 3.
4.interleave(1, 2, 3) returns 4, 1, 2, 3.
Implementation
Set<E> interleave(Iterable<E> it) {
return h.interleaveIterable(this, it).toSet();
}