{"provider_name":"Hatena Blog","version":"1.0","height":"190","categories":[],"image_url":null,"width":"100%","url":"https://crakac.hatenablog.jp/entry/2020/11/11/172612","title":"Kotlin\u3067MultiSet\u3092\u96d1\u306b\u5b9f\u88c5\u3059\u308b","published":"2020-11-11 17:26:12","description":"AtCoder\u306e\u554f\u984c\u3092\u89e3\u3044\u3066\u3044\u308b\u3068\u304d\u306bMultiSet\u304c\u3042\u308b\u3068\u52a9\u304b\u308b\u5834\u9762\u304c\u3042\u3063\u305f\u305f\u3081\u3056\u3063\u304f\u308a\u5b9f\u88c5\u3002 import java.util.TreeMap import java.util.TreeSet class SortedMultiSet<T>( comparator: Comparator<T>? = null, val map: TreeMap<T, Int> = TreeMap<T, Int>(comparator) ) :MutableSet<T> by map.keys{ override fun add(element: T): Boolean { map[element] = \u2026","provider_url":"https://hatena.blog","author_url":"https://blog.hatena.ne.jp/crakac/","author_name":"crakac","blog_url":"https://crakac.hatenablog.jp/","blog_title":"Dive into Ofuton","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fcrakac.hatenablog.jp%2Fentry%2F2020%2F11%2F11%2F172612\" title=\"Kotlin\u3067MultiSet\u3092\u96d1\u306b\u5b9f\u88c5\u3059\u308b - Dive into Ofuton\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","type":"rich"}