[英]How to know if a key exists in inner map using java?
在下面的 map 中,我如何知道 key3 是否存在而無需通過蠻力 for 循環並檢查每個內部 map。 鑒於所有鍵都是唯一的,我們是否有任何庫函數可以做到這一點?
"map": {
"key1": "value1",
"innerMap": {
"key2": "value2",
"innerMap2": {
"key3": "value3"
}
}
}
假設您的圖片描述了Map
,那么“蠻力”樹遍歷是您的最佳選擇。
沒有用於搜索嵌套地圖的標准 Java SE API。
@f1sh 提到了進行字符串搜索的可能性......假設 map 實際上是 JSON。 有一些重要的警告:
搜索 JSON 字符串(或調用Map.toString()
的結果)的字符串可能很脆弱。 例如,如果 map 中的值包含該搜索字符串, .contains("\"key3\":")
將給出錯誤匹配。
將Map
渲染到 JSON(或其他)以進行字符串搜索將比進行搜索更昂貴。
String.contains
搜索可能需要查看序列化中的每個字符。 這就像樹遍歷一樣“蠻力”。
我能想到的唯一選擇不是“蠻力”是創建一個輔助數據結構; 例如 map 樹中所有(唯一)鍵的HashSet
。 創建后,可以在O(1)
中查詢該集合......但創建它是O(N)
,其中N
是樹中(非不同)鍵的數量。
最后,map 樹遍歷可能是一種遞歸方法,而不是(只是)一堆for
循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.