java如何根据列表中的元素对映射中的键进行排序
我希望根据列表中可用的键(列表中元素的顺序是不可变的)在地图中排列/排序元素,这样使用java时,地图和列表中的键的顺序应该相同
地图中的数据:
{grocery=150, utility=130, miscellneous=90, rent=1150,
clothes=120, transportation=100}
列表中的数据:
[utility, miscellneous, clothes, transportation, rent]
预期结果:
{utility=130, miscellneous=90, clothes=120, transportation=100, rent=1150 }
# 1 楼答案
您必须遍历所需的键列表,并从
Map
中检索值。为了维持秩序,你应该使用LinkedHashMap
:# 2 楼答案
这不是一种。 您希望从列表开始处理元素
假设文本值为字符串,数值为整数,可以这样做:
还是:
# 3 楼答案
您可以使用
Comparator
根据给定列表中映射的键的出现索引对映射进行排序,然后为了保留排序顺序,将其收集到LinkedHashMap
:输出: