public ImmutableSortedSet<Pair<T, Integer>> zipWithIndex() { Comparator<? super T> comparator = this.comparator(); if (comparator == null) { TreeSortedSet<Pair<T, Integer>> pairs = TreeSortedSet.newSet( Comparators.<Pair<T, Integer>, T>byFunction( Functions.<T>firstOfPair(), Comparators.<T>naturalOrder())); return Iterate.zipWithIndex(this, pairs).toImmutable(); } return Iterate.zipWithIndex( this, TreeSortedSet.<Pair<T, Integer>>newSet(Comparators.<T>byFirstOfPair(comparator))) .toImmutable(); }
public <S> ImmutableSortedSet<Pair<T, S>> zip(Iterable<S> that) { Comparator<? super T> comparator = this.comparator(); if (comparator == null) { TreeSortedSet<Pair<T, S>> pairs = TreeSortedSet.newSet( Comparators.<Pair<T, S>, T>byFunction( Functions.<T>firstOfPair(), Comparators.<T>naturalOrder())); return Iterate.zip(this, that, pairs).toImmutable(); } return Iterate.zip( this, that, TreeSortedSet.<Pair<T, S>>newSet(Comparators.<T>byFirstOfPair(comparator))) .toImmutable(); }