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

📄 indexbasedseries.java

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

import com.reddragon2046.base.utilities.data.util.IteratorFactory;
import java.util.List;

// Referenced classes of package com.reddragon2046.base.utilities.data:
//            AbstractSequence, ModifiableSeries, ForwardIterator, InputIterator

class IndexBasedSeries extends AbstractSequence
    implements ModifiableSeries
{

    public IndexBasedSeries(List list, int startIndex)
    {
        this(list, startIndex, list.size() - 1);
    }

    public IndexBasedSeries(List list, int startIndex, int finishIndex)
    {
        if(startIndex > finishIndex)
        {
            throw new IllegalArgumentException("start index is greater than finish index");
        } else
        {
            m_list = list;
            m_startIndex = startIndex;
            m_finishIndex = finishIndex;
            return;
        }
    }

    public ForwardIterator start()
    {
        return startForward();
    }

    public ForwardIterator finish()
    {
        return finishForward();
    }

    public int size()
    {
        return (m_finishIndex - m_startIndex) + 1;
    }

    public Object clone()
    {
        return new IndexBasedSeries(m_list, m_startIndex, m_finishIndex);
    }

    public Object get(int index)
    {
        return m_list.get(m_startIndex + index);
    }

    public InputIterator startInput()
    {
        return startForward();
    }

    public InputIterator finishInput()
    {
        return finishForward();
    }

    public boolean supportsForwardIterator()
    {
        return true;
    }

    public ForwardIterator startForward()
    {
        List list = getList();
        return IteratorFactory.startForwardAt(list, m_startIndex);
    }

    public ForwardIterator finishForward()
    {
        List list = getList();
        return IteratorFactory.finishForwardAt(list, m_finishIndex);
    }

    private List getList()
    {
        return m_list;
    }

    private int m_startIndex;
    private int m_finishIndex;
    private List m_list;
}

⌨️ 快捷键说明

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