Skip to content

Instantly share code, notes, and snippets.

class SetBackedMap<K, V>(private val set: Set<Map.Entry<K, V>>) : Map<K, V> {
override val entries: Set<Map.Entry<K, V>> = set
override val keys: Set<K> = set.map { (key, _) -> key }.toSet()
override val size: Int = set.size
override val values: Collection<V> = set.map { (_, value) -> value }
override fun containsKey(key: K): Boolean {
return set.any { (possibleKey, _) -> possibleKey == key }
}
@happy-bracket
happy-bracket / Singles
Created June 17, 2019 08:29
For medium 1
Single.just(3).map { x -> x.toString() }
object Sentries {
private val callbacks = ConcurrentHashMap<Reference<*>, () -> Unit>()
private val refs = HashSet<WeakReference<*>>()
private val refQueue = ReferenceQueue<Sentry<*>>()
private val poller =
Observable.interval(10000, TimeUnit.MILLISECONDS)
.subscribe {
refQueue.poll()?.let { ref ->
callbacks.remove(ref)?.invoke()