iteratoriterator.java

来自「java 的源代码」· Java 代码 · 共 140 行

JAVA
140
字号
package com.reddragon2046.base.utilities.data.algorithms;

import com.reddragon2046.base.utilities.data.*;
import java.util.Collection;
import java.util.Iterator;

class IteratorIterator
    implements ForwardIterator
{

    IteratorIterator(ForwardIterator iterator, Container container)
    {
        this.iterator = iterator;
        this.container = container;
    }

    public void advance()
    {
        iterator.advance();
    }

    public void advance(int n)
    {
        iterator.advance(n);
    }

    public int distance(InputIterator i)
    {
        if(i instanceof IteratorIterator)
            return iterator.distance(((IteratorIterator)i).iterator);
        else
            return iterator.hasNext() ? ((ForwardIterator)iterator.get()).distance(i) : container.finish().distance(i);
    }

    public Object clone()
    {
        return new IteratorIterator((ForwardIterator)iterator.clone(), container);
    }

    public Container getContainer()
    {
        return container;
    }

    public Collection getCollection()
    {
        return container;
    }

    public boolean isCompatibleWith(InputIterator i)
    {
        return (i instanceof ForwardIterator) && container == ((ForwardIterator)i).getContainer();
    }

    public boolean atBegin()
    {
        return iterator.atBegin();
    }

    public boolean atEnd()
    {
        return iterator.atEnd();
    }

    public Object get()
    {
        return ((ForwardIterator)iterator.get()).get();
    }

    public Object get(int n)
    {
        return ((ForwardIterator)iterator.get()).get(n);
    }

    public void put(Object object)
    {
        ((ForwardIterator)iterator.get()).put(object);
    }

    public void put(int n, Object object)
    {
        ((ForwardIterator)iterator.get()).put(n, object);
    }

    public boolean equals(Object object)
    {
        return (object instanceof IteratorIterator) && equals((IteratorIterator)object);
    }

    public boolean equals(IteratorIterator iterator)
    {
        return this.iterator.equals(iterator.iterator);
    }

    public int hashCode()
    {
        return iterator.hashCode();
    }

    public boolean hasMoreElements()
    {
        return hasNext();
    }

    public boolean hasNext()
    {
        return !atEnd();
    }

    public Object nextElement()
    {
        return next();
    }

    public Object next()
    {
        Object object = get();
        advance();
        return object;
    }

    public void remove()
    {
        iterator.remove();
    }

    public int opaqueId()
    {
        return (com.reddragon2046.base.utilities.data.algorithms.IteratorIterator.class).getName().hashCode();
    }

    public Object opaqueData()
    {
        return iterator.opaqueData();
    }

    private ForwardIterator iterator;
    private Container container;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?