Создайте обратную хэш-карту следующим образом:
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, а также затем удалить его из обратной карты.И тогда вы переходите к следующему элементу в списке типов