indexbasedforwarditerator.java

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

JAVA
59
字号
package com.reddragon2046.base.utilities.data.collections;

import com.reddragon2046.base.utilities.data.ForwardIterator;
import java.util.List;
import java.util.ListIterator;

// Referenced classes of package com.reddragon2046.base.utilities.data.collections:
//            AbstractIteratorAdapter, ListIterationState, AbstractIndexBasedIterator, IterationState

class IndexBasedForwardIterator extends AbstractIteratorAdapter
    implements ForwardIterator
{

    public IndexBasedForwardIterator(IterationState state)
    {
        super(state);
    }

    public Object clone()
    {
        return new IndexBasedForwardIterator(getIterationData());
    }

    protected ListIterationState getListIterationState()
    {
        return (ListIterationState)getIterationData();
    }

    public Object get(int index)
    {
        int currentIndex = getInternalIndex();
        int targetIndex = currentIndex + index;
        return getList().get(targetIndex);
    }

    public void put(Object object)
    {
        put(0, object);
    }

    public void put(int offset, Object object)
    {
        int targetIndex = getInternalIndex() + offset;
        ListIterator iter = getList().listIterator(targetIndex);
        iter.next();
        iter.set(object);
    }

    private List getList()
    {
        return (List)getCollection();
    }

    private ListIterator getListIterator()
    {
        return (ListIterator)getInternalIterator();
    }
}

⌨️ 快捷键说明

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