# Stream.Builder

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# Builder

```
interface Builder<T : Any!> : Consumer<T>
```

|--------------------------------------------------------------------------------------------------------------------|
| [java.util.stream.Stream.Builder](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#) |

A mutable builder for a`Stream`. This allows the creation of a`Stream`by generating elements individually and adding them to the`Builder`(without the copying overhead that comes from using an`ArrayList`as a temporary buffer.)

A stream builder has a lifecycle, which starts in a building phase, during which elements can be added, and then transitions to a built phase, after which elements may not be added. The built phase begins when the[build()](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#build())method is called, which creates an ordered`Stream`whose elements are the elements that were added to the stream builder, in the order they were added.

## Summary

|                                                                                                                                             Public methods                                                                                                                                             ||
|-------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract[Unit](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)                        | [accept](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#accept(java.util.stream.Stream.Builder.T))`(`t:` `T`)` Adds an element to the stream being built. |
| open[Stream.Builder](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#)\<T\>! | [add](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#add(java.util.stream.Stream.Builder.T))`(`t:` `T`)` Adds an element to the stream being built.       |
| abstract[Stream](https://developer.android.com/reference/kotlin/java/util/stream/Stream)\<T\>!              | [build](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#build())`()` Builds the stream, transitioning this builder to the built state.                     |

| Inherited functions ||
|---|---|
| From class[Consumer](https://developer.android.com/reference/kotlin/java/util/function/Consumer.html#) |--------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Consumer](https://developer.android.com/reference/kotlin/java/util/function/Consumer.html#)<T>! | [andThen](https://developer.android.com/reference/kotlin/java/util/function/Consumer.html#andThen(java.util.function.Consumer))`(`after:` `[Consumer](https://developer.android.com/reference/kotlin/java/util/function/Consumer.html#)<in` `T>!`)` <br /> Returns a composed`Consumer`that performs, in sequence, this operation followed by the`after`operation. If performing either operation throws an exception, it is relayed to the caller of the composed operation. If performing this operation throws an exception, the`after`operation will not be performed. <br /> | ||

## Public methods

### accept

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
abstract fun accept(t: T): Unit
```

Adds an element to the stream being built.

|        Parameters         ||
|-----|----------------------|
| `t` | T:the input argument |

|                                          Exceptions                                           ||
|-----------------------------------|------------------------------------------------------------|
| `java.lang.IllegalStateException` | if the builder has already transitioned to the built state |

### add

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
open fun add(t: T): Stream.Builder<T>!
```

Adds an element to the stream being built.

|        Parameters         ||
|-----|----------------------|
| `t` | T:the element to add |

|                                                        Return                                                        ||
|-------------------------------------------------------------------------------------------------------|---------------|
| [Stream.Builder](https://developer.android.com/reference/kotlin/java/util/stream/Stream.Builder#)<T>! | `this`builder |

|                                          Exceptions                                           ||
|-----------------------------------|------------------------------------------------------------|
| `java.lang.IllegalStateException` | if the builder has already transitioned to the built state |

### build

Added in[API level 24](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
abstract fun build(): Stream<T>!
```

Builds the stream, transitioning this builder to the built state. An`IllegalStateException`is thrown if there are further attempts to operate on the builder after it has entered the built state.

|                                                 Return                                                 ||
|--------------------------------------------------------------------------------------|------------------|
| [Stream](https://developer.android.com/reference/kotlin/java/util/stream/Stream)<T>! | the built stream |

|                                          Exceptions                                           ||
|-----------------------------------|------------------------------------------------------------|
| `java.lang.IllegalStateException` | if the builder has already transitioned to the built state |