⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reverseiterator.java

📁 java 的源代码
💻 JAVA
字号:
package com.reddragon2046.base.utilities.data.util;

import com.reddragon2046.base.utilities.data.*;
import com.reddragon2046.base.utilities.data.collections.BidirectionalIteratorAdapter;
import java.io.Serializable;
import java.util.*;

public final class ReverseIterator
    implements BidirectionalIterator, Serializable
{

    public ReverseIterator(List list)
    {
        this(BidirectionalIteratorAdapter.finishBidirectional(list));
    }

    public ReverseIterator(BidirectionalIterator iterator)
    {
        myIterator = iterator;
    }

    public ReverseIterator(ReverseIterator iterator)
    {
        myIterator = (BidirectionalIterator)iterator.myIterator.clone();
    }

    public Object clone()
    {
        return new ReverseIterator(this);
    }

    public boolean atEnd()
    {
        return myIterator.atBegin();
    }

    public boolean atBegin()
    {
        return myIterator.atEnd();
    }

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

    public boolean equals(ReverseIterator iterator)
    {
        return myIterator.equals(iterator.myIterator);
    }

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

    public boolean hasNext()
    {
        return !myIterator.atBegin();
    }

    public boolean hasPrevious()
    {
        return !myIterator.atEnd();
    }

    public void add(Object o)
    {
        myIterator.add(o);
    }

    public void set(Object o)
    {
        myIterator.set(o);
    }

    public void advance()
    {
        myIterator.retreat();
    }

    public void advance(int n)
    {
        myIterator.retreat(n);
    }

    public void retreat()
    {
        myIterator.advance();
    }

    public void retreat(int n)
    {
        myIterator.advance(n);
    }

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

    public Object next()
    {
        myIterator.retreat();
        return myIterator.get();
    }

    public Object previous()
    {
        myIterator.advance();
        return myIterator.get();
    }

    public int nextIndex()
    {
        return myIterator.previousIndex();
    }

    public int previousIndex()
    {
        return myIterator.nextIndex();
    }

    public Object get()
    {
        myIterator.retreat();
        Object object = myIterator.get();
        myIterator.advance();
        return object;
    }

    public void put(Object object)
    {
        myIterator.retreat();
        myIterator.put(object);
        myIterator.advance();
    }

    public int distance(ForwardIterator iterator)
    {
        return iterator.distance(this);
    }

    public Object get(int offset)
    {
        return myIterator.get(-(offset + 1));
    }

    public void put(int offset, Object object)
    {
        myIterator.put(-(offset + 1), object);
    }

    public Container getContainer()
    {
        return myIterator.getContainer();
    }

    public Collection getCollection()
    {
        return myIterator.getCollection();
    }

    public boolean isCompatibleWith(InputIterator iterator)
    {
        return (iterator instanceof ReverseIterator) && myIterator.isCompatibleWith(iterator);
    }

    public int distance(InputIterator iterator)
    {
        if(!isCompatibleWith(iterator))
            throw new IllegalArgumentException("iterators not compatible");
        else
            return ((ReverseIterator)iterator).nextIndex() - nextIndex();
    }

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

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

    BidirectionalIterator myIterator;
    static final long serialVersionUID = 0x387c651775dee5c4L;
}

⌨️ 快捷键说明

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