diff --git a/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/SupplierMap.kt b/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/SupplierMap.kt index 3ce75a3f8..a53c6448f 100644 --- a/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/SupplierMap.kt +++ b/src/main/kotlin/ru/dbotthepony/mc/otm/core/collect/SupplierMap.kt @@ -1,21 +1,25 @@ package ru.dbotthepony.mc.otm.core.collect -import com.google.common.collect.ImmutableMap import com.google.common.collect.ImmutableSet +import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap import ru.dbotthepony.mc.otm.core.stream import java.util.function.Supplier import java.util.stream.Stream class SupplierMap(values: Stream>>) : Map { + private val backing = Object2ObjectLinkedOpenHashMap>() override val entries: Set> override val keys: Set get() = backing.keys override val size: Int get() = entries.size override val values: Collection - private val backing = values.collect(ImmutableMap.toImmutableMap({ it.first }, { it.second })) init { + values.forEach { + backing[it.first] = it.second + } + entries = ImmutableSet.copyOf(backing.entries.map { Entry(it.key, it.value) }) this.values = SupplierList(backing.values) }