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

📄 inputiteratorbasedseries.java

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

import com.reddragon2046.base.utilities.data.util.IteratorFactory;
import java.util.AbstractCollection;
import java.util.Iterator;

// Referenced classes of package com.reddragon2046.base.utilities.data:
//            InputIterator, Series

class InputIteratorBasedSeries extends AbstractCollection
    implements Series
{

    public InputIteratorBasedSeries(InputIterator start)
    {
        this(start, IteratorFactory.finish(start.getCollection()));
    }

    public InputIteratorBasedSeries(InputIterator start, InputIterator finish)
    {
        if(!start.isCompatibleWith(finish))
        {
            throw new IllegalArgumentException("start and finish iterators are incompatible");
        } else
        {
            m_start = start;
            m_finish = finish;
            return;
        }
    }

    public Iterator iterator()
    {
        return startInput();
    }

    public int size()
    {
        if(m_size == -1)
        {
            InputIterator iter = startInput();
            int size;
            for(size = 0; !iter.equals(m_finish); size++)
                iter.next();

            m_size = size;
        }
        return m_size;
    }

    public InputIterator startInput()
    {
        return (InputIterator)m_start.clone();
    }

    public InputIterator finishInput()
    {
        if(m_finish == null)
            throw new UnsupportedOperationException("attempt to get finish of open-ended series");
        else
            return (InputIterator)m_finish.clone();
    }

    private InputIterator m_start;
    private InputIterator m_finish;
    private int m_size;
    private static final int NOT_INITIALIZED = -1;
}

⌨️ 快捷键说明

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