# Collection.plus operator is not optimal

**URL:** <https://discuss.kotlinlang.org/t/collection-plus-operator-is-not-optimal/3371>\
**Category:** Language Design\
**Created:** [June 17, 2017, 4:49pm UTC](https://discuss.kotlinlang.org/t/collection-plus-operator-is-not-optimal/3371 "2017-06-17T16:49:16Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![qwaler](https://avatars.discourse-cdn.com/v4/letter/q/3da27b/32.png) [@qwaler](https://discuss.kotlinlang.org/u/qwaler)\
**Post date:** [June 17, 2017, 4:49pm UTC](https://discuss.kotlinlang.org/t/collection-plus-operator-is-not-optimal/3371/1 "2017-06-17T16:49:16Z")

</div>

Why a plus operator creates every single time new instance of ArrayList? When I use method add() from ArrayList, the data inside is copying only if array inside is insufficient. Isn’t it a bug?

---

<div class="post-metadata">

**Author:** ![Konstantin-Khvan](https://avatars.discourse-cdn.com/v4/letter/k/4af34b/32.png) [@Konstantin-Khvan](https://discuss.kotlinlang.org/u/Konstantin-Khvan)\
**Post date:** [June 17, 2017, 5:22pm UTC](https://discuss.kotlinlang.org/t/collection-plus-operator-is-not-optimal/3371/2 "2017-06-17T17:22:05Z")

</div>

nobody is expecting side effects in operators.

imagine writing something like std:cout \<\< “asd”; thats horrible 😃

---

<div class="post-metadata">

**Author:** ![Konstantin-Khvan](https://avatars.discourse-cdn.com/v4/letter/k/4af34b/32.png) [@Konstantin-Khvan](https://discuss.kotlinlang.org/u/Konstantin-Khvan)\
**Post date:** [June 17, 2017, 5:28pm UTC](https://discuss.kotlinlang.org/t/collection-plus-operator-is-not-optimal/3371/3 "2017-06-17T17:28:17Z")

</div>

btw there is += for mutable collections which does what you want
