[英]Re-order Map based on ordering of List
假設我有兩個數據結構,一個有序的字符串列表和一個HashMap。 列表看起來像:
types = ["string", "integer", "boolean", "integer"];
帶有對象鍵和String值的HashMap如下所示:
map = {2=integer, true=boolean, 7=integer, "dog"=string};
什么是最簡單/最有效的方式來重新組織Map的“順序”,以便Map的值與列表的順序一致,即,Map在打印時現在看起來像這樣:
map = {"dog"=string, 2=integer, true=boolean, 7=integer};
像這樣構建一個反向hashmap,
types = ["string", "integer", "boolean", "integer"];
map = {2=integer, true=boolean, 7=integer, "dog"=string};
reversedmap = {integer=[2,7], boolean=true, string=dog};
然后遍歷列表並從反轉映射中獲取相應的鍵。
例如,首先你從類型 - >獲得“字符串”,所以你知道相應的鍵應該是“狗”。 在其他某個映射( LinkedHashMap
類型)中插入此鍵值對。 繼續這樣做,直到你到達類型列表的末尾。
編輯:謝謝@FedericoPeraltaSchaffner指出這一點。
如果從相反的映射中獲取兩個值(例如,在“整數”元素的情況下),您可以選擇其中一個(無關緊要)插入到LinkedHashMap中,同時隨后將其從反轉映射中刪除。 然后你開始使用類型列表中的下一個元素
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.