📄 inputiteratorbasedseries.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 + -