~ubuntu-branches/ubuntu/wily/gs-collections/wily

« back to all changes in this revision

Viewing changes to collections/src/main/java/com/gs/collections/impl/lazy/iterator/ZipIterator.java

  • Committer: Package Import Robot
  • Author(s): Emmanuel Bourg
  • Date: 2015-07-23 12:42:30 UTC
  • Revision ID: package-import@ubuntu.com-20150723124230-2rjvfv6elyn2m7d4
Tags: upstream-5.1.0
ImportĀ upstreamĀ versionĀ 5.1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2014 Goldman Sachs.
 
3
 *
 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
 
5
 * you may not use this file except in compliance with the License.
 
6
 * You may obtain a copy of the License at
 
7
 *
 
8
 *     http://www.apache.org/licenses/LICENSE-2.0
 
9
 *
 
10
 * Unless required by applicable law or agreed to in writing, software
 
11
 * distributed under the License is distributed on an "AS IS" BASIS,
 
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
13
 * See the License for the specific language governing permissions and
 
14
 * limitations under the License.
 
15
 */
 
16
 
 
17
package com.gs.collections.impl.lazy.iterator;
 
18
 
 
19
import java.util.Iterator;
 
20
 
 
21
import com.gs.collections.api.tuple.Pair;
 
22
import com.gs.collections.impl.tuple.Tuples;
 
23
import net.jcip.annotations.Immutable;
 
24
 
 
25
@Immutable
 
26
public final class ZipIterator<X, Y>
 
27
        implements Iterator<Pair<X, Y>>
 
28
{
 
29
    private final Iterator<X> xIterator;
 
30
    private final Iterator<Y> yIterator;
 
31
 
 
32
    public ZipIterator(Iterable<X> xs, Iterable<Y> ys)
 
33
    {
 
34
        this.xIterator = xs.iterator();
 
35
        this.yIterator = ys.iterator();
 
36
    }
 
37
 
 
38
    public void remove()
 
39
    {
 
40
        throw new UnsupportedOperationException("Cannot call remove() on " + this.getClass().getSimpleName());
 
41
    }
 
42
 
 
43
    public boolean hasNext()
 
44
    {
 
45
        return this.xIterator.hasNext() && this.yIterator.hasNext();
 
46
    }
 
47
 
 
48
    public Pair<X, Y> next()
 
49
    {
 
50
        return Tuples.pair(this.xIterator.next(), this.yIterator.next());
 
51
    }
 
52
}