Package org.codehaus.commons.compiler.util.iterator

# Class IteratorCollection<T>

java.lang.Object
java.util.AbstractCollection<T>
org.codehaus.commons.compiler.util.iterator.IteratorCollection<T>

Type Parameters:
  `T` - The element type of the iterator and the collection

All Implemented Interfaces:
  `Iterable<T>`, `Collection<T>`

public class IteratorCollection<T> extends AbstractCollection<T>
A `Collection` that lazily reads its elements from an `Iterator`.

In other words, you can call `iterator()` as often as you want, but the `IteratorCollection` will iterate over its delegate only once.

## Constructor Summary

Constructors
Constructor
Description
`IteratorCollection(Iterator<T> iterator)`

## Method Summary

Modifier and Type
Method
Description
`Iterator<T>`
`iterator()`
`int`
`size()`

### Methods inherited from class java.util.AbstractCollection

`add, addAll, clear, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Collection

`equals, hashCode, parallelStream, removeIf, spliterator, stream, toArray`

### Methods inherited from interface java.lang.Iterable

`forEach`

## Constructor Details

### IteratorCollection

public IteratorCollection(Iterator<T> iterator)

## Method Details

### iterator

public Iterator<T> iterator()

Specified by:
  `iterator` in interface `Collection<T>`
Specified by:
  `iterator` in interface `Iterable<T>`
Specified by:
  `iterator` in class `AbstractCollection<T>`

### size

public int size()

Specified by:
  `size` in interface `Collection<T>`
Specified by:
  `size` in class `AbstractCollection<T>`