# How to ensure min() operation on collection return a default value incase of null r

**URL:** <https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933>\
**Category:** Uncategorized\
**Created:** [January 17, 2020, 11:03am UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933 "2020-01-17T11:03:56Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![nadeeshtv](https://avatars.discourse-cdn.com/v4/letter/n/90ced4/32.png) [@nadeeshtv](https://discuss.kotlinlang.org/u/nadeeshtv)\
**Post date:** [January 17, 2020, 11:03am UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933/1 "2020-01-17T11:03:56Z")

</div>

Hi all,

I was wondering how to write equivalent of min().orElse(0) of java collection in kotlin.

This is my attempt

```
val minList:List<String> = listOf("1", "2")
val min:Long = minList.map { x->x.toLong() }.min()?.toLong()?:0;

```

I was wondering whether there would be any better approach?

---

<div class="post-metadata">

**Author:** ![al3c](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@al3c](https://discuss.kotlinlang.org/u/al3c)\
**Post date:** [January 17, 2020, 11:15am UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933/2 "2020-01-17T11:15:05Z")

</div>

Looks ok, you don’t need the second `.toLong`:

```auto
val min = minList.map { x -> x.toLong() }.min() ?: 0;

```

---

<div class="post-metadata">

**Author:** ![nadeeshtv](https://avatars.discourse-cdn.com/v4/letter/n/90ced4/32.png) [@nadeeshtv](https://discuss.kotlinlang.org/u/nadeeshtv)\
**Post date:** [January 17, 2020, 11:23am UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933/3 "2020-01-17T11:23:02Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![Wasabi375](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/wasabi375/32/4741_2.png) [@Wasabi375](https://discuss.kotlinlang.org/u/Wasabi375)\
**Post date:** [January 17, 2020, 6:52pm UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933/5 "2020-01-17T18:52:17Z")

</div>

You could also use

```kotlin
val min = minList.minBy { it.toLong() }.toLong() ?: 0

```

However I would prefer your version if you are interested in the long value. If you care about the string, minBy is what you want.

---

<div class="post-metadata">

**Author:** ![nlwillia](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/nlwillia/32/5065_2.png) [@nlwillia](https://discuss.kotlinlang.org/u/nlwillia)\
**Post date:** [January 20, 2020, 2:36pm UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933/6 "2020-01-20T14:36:21Z")

</div>

If it’s a Java collection containing nulls, the type would be `List<String?>` so just `min()` wouldn’t work and you’d need `val min = list.minBy { x -> x?.toLong() ?: 0 }`

---

<div class="post-metadata">

**Author:** ![Wasabi375](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/wasabi375/32/4741_2.png) [@Wasabi375](https://discuss.kotlinlang.org/u/Wasabi375)\
**Post date:** [January 20, 2020, 5:01pm UTC](https://discuss.kotlinlang.org/t/how-to-ensure-min-operation-on-collection-return-a-default-value-incase-of-null-r/15933/7 "2020-01-20T17:01:39Z")

</div>

This still returns `null` for empty lists.
