java - How to use `filter` on Map instance in Kotlin? -


i see #filter defined on map, not able figure out how use it. care share example?

i have nested treemap instance (treemap<string, map<string, map<*, *>>>) , want filter/find first (which in domain) top-level key has characteristics associated deeper in value.

here's how data looks like:

{   "i1": {     "aliases": {}   },   "i2": {     "aliases": {}   },   "i3": {     "aliases": {}   },   "i4": {     "aliases": {       "alias-im-looking-for": {}     }   } } 

i have following non-functional code solves right now:

val indextoaliasmappingtype = linkedtreemap<string, map<string, map<*, *>>>() val indextoaliasmappings = gson().fromjson(response.jsonstring, indextoaliasmappingtype.javaclass)  var currentindexname = "" ((index, aliasmappings) in indextoaliasmappings) {     val hascurrentalias = aliasmappings.get("aliases")?.containskey(alias)     if (hascurrentalias != null && hascurrentalias) {         currentindexname = index     } }  return currentindexname 

looks need key part of first entry matches criteria. (single line intentional) should help:

val currentindexname = indextoaliasmappings.filtervalues { it["aliases"]?.containskey(alias) ?: false }.keys.firstornull() ?: "" 

Comments

Popular posts from this blog

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -